Ноутбук Asus M5200AE и его работа в Линукс



20 коммент.
В своё время купил ноутбук ASUS M5200AE из расчёта лёгкости (так как прежний Acer TravelMate 200 весил 3кг) и возможности установки Linux. Так как компоненты этого ноутбука часто встречаются в других моделях, ниже приводится информация о работоспособности Линукса на нём.

Итак, вкратце: есть компоненты ноутбука, которыми я не пользуюсь и вообще не проверял их работоспособность. Зелёным - работает нормально, жёлтым- не проверял, красным - балласт.


Чипсет: Intel 915GM + ICH6-M
Работает отлично, включение в ядре только драйвера контроллера Intel PIIx придаёт системе значительное ускорение.


Процессор: Intel Pentium M processor 740 1.73 ГГц
Работает отлично, очень быстрый (немногим уступая десктопному P4 630 3ГГц с Гипертреадингом). Есть возможность контроля частоты с помощью cpu_freq в ядре, работает отлично, следует использовать параметры:
[*] CPU Frequency scaling
...
<*> CPU frequency translation statistics
...
Default CPUFreq governor (performance)--->
--- 'performance' governor
<*> 'powersave' governor
<*> 'userspace' governor for userspace frequency scaling
<*> 'ondemand' cpufreq policy governor
<*> 'conservative' cpufreq governor
....
<*> Intel Enhanced SpeedStep
[*] Use ACPI tables to decode valid frequency/voltage (deprecated)
[*] Built-in tables for Banias CPUs
<*> Intel Speedstep on ICH-M chipsets (ioport interface)

Установка пакета cpufrequtils позволяет тонко управлять тактовой частотой процессора.


ACPI, управление питанием: Host bridge: Intel Corp. Mobile Memory Controller Hub (rev 04)
Работает отлично, есть возможность отслеживать состояние батарей. При работе от аккумуляторов (4800мА/ч) личный рекорд работы - 6 часов при выведении яркости монитора на 1/4 яркости (Firefox, Thunderbird, Kile, Kate, OpenOffice.org и gprs-интернет).
Кнопки понижения/повышения яркости дисплея работают, в ядре требуется включить:
[*] ACPI Support
..
<*>AC Adapter
<*>Battery
<*>Button
< >Video
<*>Fan
< >Dock
<*>Processor
<*> Thermal Zone
<*>ASUS/Medion Laptop Extras



Дисплей:
12.1"
Яркий и чёткий, с рабочим разрешением 1024х768, достаточно большие углы обзора, отличное изображение, малая латентность, быстро прогревается.


Видеосистема: Intel Graphics Media Accelerator 900
Прекрасно работает с X.org 6.9 и выше из backports без всяких проблем, glxgears выдаёт 600-700FPS, мне хватает. Работает так же режим Clone для подключения внешнего проектора при внесении в конфиг xorg.conf исправлений:

Section "Device"
Identifier "Generic Video Card"
Driver "i810"
VideoRam 32764
BusID "PCI:0:2:0"
Option "SWcursor" "0"
Option "Accel"
Option "DisplayInfo" "FALSE"
Option "VBERestore" "true"
Option "MonitorLayout" "CRT,LFP"
Option "Clone" "true"

EndSection

Найдено на официальном сайте компании Интел, за что ей мерси. 3D-ускорение включается в ядре выбором в разделе DRI чипа i810, в меню Device Drivers--- Character devices
выбираем:
<*> /dev/agpgart (AGP Support)
...
Intel 440LX/BX/GX, I8xx and E7x05 chipset support
...
<*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)
...
Intel I810


ОЗУ: 512Mb DDR-II
Используется ядром по полной программе с редким обращением к swap-файлу, проходит memtest без ошибок.
Ещё большую отдачу можно получить, накатив на ядро пачти Con Kolivas и особенно Ingo Molnar, существенно повышающие отзывчивость системы. Память и своп при этом расходуются больше, зато переключение между задачами происходит намного быстрее.


Винчестер: Seagate 56Gb* UDMA/100
Работает без проблем с файловой системой ReiserFS 3.6. Судя по данным S.M.A.R.T, чувствует себя хорошо:
SMART Attributes Data Structure revision number: 16

Vendor Specific SMART Attributes with Thresholds:


ID# ATTRIBUTE_NAME FLAG VALUE WORST THRESH TYPE UPDATED WHEN_FAILED RAW_VALUE


1 Raw_Read_Error_Rate 0x000b 100 100 062 Pre-fail Always - 0


2 Throughput_Performance 0x0005 100 100 040 Pre-fail Offline - 0


3 Spin_Up_Time 0x0007 208 208 033 Pre-fail Always - 2


4 Start_Stop_Count 0x0012 100 100 000 Old_age Always - 1170


5 Reallocated_Sector_Ct 0x0033 100 100 005 Pre-fail Always - 0


7 Seek_Error_Rate 0x000b 100 100 067 Pre-fail Always - 0


8 Seek_Time_Performance 0x0005 100 100 040 Pre-fail Offline - 0


9 Power_On_Hours 0x0012 093 093 000 Old_age Always - 3475


10 Spin_Retry_Count 0x0013 100 100 060 Pre-fail Always - 0


12 Power_Cycle_Count 0x0032 100 100 000 Old_age Always - 597


191 G-Sense_Error_Rate 0x000a 100 100 000 Old_age Always - 0


192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age Always - 2


193 Load_Cycle_Count 0x0012 083 083 000 Old_age Always - 176830


194 Temperature_Celsius 0x0002 203 203 000 Old_age Always - 27 (Lifetime Min/Max 11/43)


196 Reallocated_Event_Count 0x0032 100 100 000 Old_age Always - 0


197 Current_Pending_Sector 0x0022 100 100 000 Old_age Always - 0


198 Offline_Uncorrectable 0x0008 100 100 000 Old_age Offline - 0


199 UDMA_CRC_Error_Count 0x000a 200 200 000 Old_age Always - 0

Диск, даже при компиляции ядра и активном обращении к большим файлам, не нагревается выше 35 градусов.
*Как известно, производителям выгодно считать гига-байты в метрической системе, т.е. 10^9, а не как в компьютерном мире: 1024^3. Минус 8-10% от объявленной ёмкости.

Touchpad:
Synaptic
Работает отлично, в логах ядра виден как:

localhost kernel: Synaptics Touchpad, model: 1, fw: 5.9, id: 0x116eb1, caps: 0xa04713/0x0
localhost kernel: input: SynPS/2 Synaptics TouchPad as /class/input/input1

При сборке ядра не забыть указать:

Device Drivers ---
Input Device support ---
[ * ] Event Interface

Подхватывается XFree86 и X.org без лишних телодвижений.

PCMCIA: CardBus bridge: Ricoh Co Ltd RL5c476 II (rev b3)
Работает, по крайней мере начиная с ядра 2.6.19, включить нужно хотя бы ради кардридера. Так как PCIMCIA-карт у меня нет, работу не проверял.

Опции ядра:
Опции ядра:
<*> PCCard (PCMCIA/CardBus) support
[ ] Enable PCCARD debugging
<*> 16-bit PCMCIA support
[ * ] Load CIS updates from userspace (EXPERIMENTAL)
[ * ] PCMCIA control ioctl (obsolete)
--- 32-bit CardBus support
--- PC-card bridges
<*> CardBus yenta-compatible bridge support

Об этом говорилось тут.


CardReader: Ricoh Co Ltd: Unknown device 0592 (rev 08)
Работает, по крайней мере начиная с ядра 2.6.19. Для его работы собирал ядро 2.6.20, в ядре включил опции:

Device Drivers -> MMC/SD Card support
<*> MMC support
[ ] MMC debugging
<*>MMC block device driver
[M] Secure Digital Host Controller Interface support (EXPERIMENTAL)
[M] Winbond W83L51xD SD/MMC Card Interface support
[M] TI Flash Media MMC/SD Interface support (EXPERIMENTAL)

При загрузке видны надписи, свидетельствующие о том, что устройство найдено и готово к работе
localhost kernel: sdhci: Secure Digital Host Controller Interface driver, 0.12
localhost kernel: sdhci: Copyright(c) Pierre Ossman
localhost kernel: sdhci: SDHCI controller found at 0000:01:03.2 [1180:0822] (rev 17)
localhost kernel: ACPI: PCI Interrupt 0000:01:03.2[C] -> GSI 20 (level, low) -> IRQ 21
localhost kernel: sdhci:slot0: Controller reports > 25 MHz base clock, but no high speed support.
localhost kernel: mmc0: SDHCI at 0xfe8fe400 irq 21 DMA

После вставки карточки набираю:
sudo modprobe mmc_block
ибо нечего экспериментальному коду постоянно в ядре телепаться.
В логах после вонзания флеш-карточки появляются записи:

localhost kernel: mmcblk0: mmc0:b368 SMISD 249856KiB
localhost kernel: mmcblk0: p1


Всё, дальше монтируем /dev/mmcblk0p1 и видим его как простую флешку.
Несмотря на угрожающие надписи EXPERIMENTAL модулей ядра, работает вполне прилично. Единственная флешка, стоящая в Palm Tungsten T3, читается и пишется со скоростью 3-5Мб/сек без проблем.


Сеть:
1. FireWire (IEEE 1394): Ricoh Co Ltd R5C552 IEEE 1394 Controller (rev 08)
Не проверял, но Кноппикс 5.1.1 на ядре 2.6.19 опознаёт это устройство. У меня таких приборов нет, так что не настраивал.
2. Intel Corp. PRO/Wireless 2200BG (rev 05)
Настраивал по крайней мере в 2.6.15.7 с драйверами и firmware с интеловского сайта. Всё работает идеально.
3. Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Работает из коробки с мезозойской эры практически в любой уважающей себя *nix-системе. Честные 100Мбит/сек в обе стороны.


Модем: Intel High Definition modem AC`97
Не проверял, так как подключён к интернету через скоростное Ethernet-соединение.


Звук: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 04)
Работает, по крайней мере начиная с ядра 2.6.12, настраивается ударом в этот бубен.
Был странный момент: звук чистый и очень хороший, но при общении через Skype или прослушивании Last.FM через 5-10 секунд начинается лёгкий хрип / поскрипывание - как будто громкость выведена на максимум и слышится противный (хотя и не частый) "снег". Проявляется только на воспроизведении. Всё идёт через ALSA, смена на OSS ничего не даёт. Замечено на ядрах с 2.6.12 по 2.6.15.7 включительно. На ядре 2.6.20 этот эффект исчез - при той же версии пакетов alsa*. Если у кого такое имеет место быть - обновляйте ядро.
Выход на колонки так же работает отлично. Динамики маленькие, но очень громкие. Встроенный микрофон очень полезен при общении через Skype - ничего подключать не надо.


CD-RW/DVD reader Combo: 'TSSTcorp' 'CDW/DVD TS-U462A' 'TS30' Removable CD-ROM

Работает нормально, с пакетом cdrecod убунтовской сборки: Cdrecord-Clone 2.01.01a01 (i686-pc-linux-gnu) и wodim, на запрос
cdrecord -scanbus -dev=ATAPI
отзывается:

scsibus0:
0,1,0 1) 'TSSTcorp' 'CDW/DVD TS-U462A' 'TS30' Removable CD-ROM
Читает и пишет диски без проблем. Для записи используются самописные башовые скрипты.

Операционная система: Windows XP Home Edition (русская версия) Debian GNU/Linux v3.1 "Sarge"+ Backports (в планах переход на Etch)
Работает превосходно, из черепной коробки. Отличается высокой скоростью переключения между задачами, гибкими настройками, безграничной возможностью подстройки под пользователя и далее по тексту.


Заключение
Все устройства в ноутбуке работают прекрасно, и, что важно, для этого не надо качать драйвера из интернета и долго и мучительно их ставить. Всё работает быстро и стабильно.

P.S. На всякий случай решил привести конфиг ядра (работает Linux 2.6.22.1RT)

#
# Automatically generated make config: don't edit
# Linux kernel version: 2.6.22.1RT
# Thu Sep 6 18:42:33 2007
#
CONFIG_X86_32=y
CONFIG_GENERIC_TIME=y
CONFIG_GENERIC_CMOS_UPDATE=y
CONFIG_CLOCKSOURCE_WATCHDOG=y
CONFIG_GENERIC_CLOCKEVENTS=y
CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y
CONFIG_NONIRQ_WAKEUP=y
CONFIG_LOCKDEP_SUPPORT=y
CONFIG_STACKTRACE_SUPPORT=y
CONFIG_SEMAPHORE_SLEEPERS=y
CONFIG_X86=y
CONFIG_MMU=y
CONFIG_ZONE_DMA=y
CONFIG_QUICKLIST=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_IOMAP=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y
CONFIG_ARCH_MAY_HAVE_PC_FDC=y
CONFIG_DMI=y
CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"

#
# Code maturity level options
#
CONFIG_EXPERIMENTAL=y
CONFIG_BROKEN_ON_SMP=y
CONFIG_LOCK_KERNEL=y
CONFIG_INIT_ENV_ARG_LIMIT=32

#
# General setup
#
CONFIG_LOCALVERSION=""
CONFIG_LOCALVERSION_AUTO=y
CONFIG_SWAP=y
CONFIG_SYSVIPC=y
# CONFIG_IPC_NS is not set
CONFIG_SYSVIPC_SYSCTL=y
CONFIG_POSIX_MQUEUE=y
CONFIG_BSD_PROCESS_ACCT=y
# CONFIG_BSD_PROCESS_ACCT_V3 is not set
# CONFIG_TASKSTATS is not set
# CONFIG_UTS_NS is not set
# CONFIG_AUDIT is not set
CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y
CONFIG_LOG_BUF_SHIFT=14
# CONFIG_SYSFS_DEPRECATED is not set
CONFIG_RELAY=y
CONFIG_BLK_DEV_INITRD=y
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
CONFIG_SYSCTL=y
# CONFIG_EMBEDDED is not set
CONFIG_UID16=y
CONFIG_SYSCTL_SYSCALL=y
CONFIG_KALLSYMS=y
# CONFIG_KALLSYMS_EXTRA_PASS is not set
CONFIG_HOTPLUG=y
CONFIG_PRINTK=y
CONFIG_BUG=y
CONFIG_ELF_CORE=y
CONFIG_BASE_FULL=y
CONFIG_FUTEX=y
CONFIG_ANON_INODES=y
CONFIG_EPOLL=y
CONFIG_SIGNALFD=y
CONFIG_TIMERFD=y
CONFIG_EVENTFD=y
CONFIG_SHMEM=y
CONFIG_VM_EVENT_COUNTERS=y
CONFIG_SLAB=y
# CONFIG_SLUB is not set
# CONFIG_SLOB is not set
CONFIG_RT_MUTEXES=y
# CONFIG_TINY_SHMEM is not set
CONFIG_BASE_SMALL=0

#
# Loadable module support
#
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
CONFIG_MODULE_FORCE_UNLOAD=y
# CONFIG_MODVERSIONS is not set
# CONFIG_MODULE_SRCVERSION_ALL is not set
CONFIG_KMOD=y

#
# Block layer
#
CONFIG_BLOCK=y
# CONFIG_LBD is not set
# CONFIG_BLK_DEV_IO_TRACE is not set
# CONFIG_LSF is not set

#
# IO Schedulers
#
CONFIG_IOSCHED_NOOP=y
CONFIG_IOSCHED_AS=y
CONFIG_IOSCHED_DEADLINE=y
CONFIG_IOSCHED_CFQ=y
# CONFIG_DEFAULT_AS is not set
# CONFIG_DEFAULT_DEADLINE is not set
CONFIG_DEFAULT_CFQ=y
# CONFIG_DEFAULT_NOOP is not set
CONFIG_DEFAULT_IOSCHED="cfq"

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
# CONFIG_SMP is not set
CONFIG_X86_PC=y
# CONFIG_X86_ELAN is not set
# CONFIG_X86_VOYAGER is not set
# CONFIG_X86_NUMAQ is not set
# CONFIG_X86_SUMMIT is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_VISWS is not set
# CONFIG_X86_GENERICARCH is not set
# CONFIG_X86_ES7000 is not set
# CONFIG_PARAVIRT is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
CONFIG_MPENTIUMM=y
# CONFIG_MCORE2 is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP2 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_ASM_SEMAPHORES=y
# CONFIG_ARCH_HAS_ILOG2_U32 is not set
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_GENERIC_CALIBRATE_DELAY=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_GOOD_APIC=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_MODEL=4
CONFIG_HPET_TIMER=y
# CONFIG_PREEMPT_NONE is not set
# CONFIG_PREEMPT_VOLUNTARY is not set
# CONFIG_PREEMPT_DESKTOP is not set
CONFIG_PREEMPT_RT=y
CONFIG_PREEMPT=y
CONFIG_PREEMPT_SOFTIRQS=y
CONFIG_PREEMPT_HARDIRQS=y
CONFIG_PREEMPT_BKL=y
# CONFIG_CLASSIC_RCU is not set
CONFIG_PREEMPT_RCU=y
CONFIG_RCU_TRACE=y
CONFIG_X86_UP_APIC=y
CONFIG_X86_UP_IOAPIC=y
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
CONFIG_X86_MCE=y
# CONFIG_X86_MCE_NONFATAL is not set
CONFIG_X86_MCE_P4THERMAL=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
# CONFIG_MICROCODE is not set
# CONFIG_X86_MSR is not set
# CONFIG_X86_CPUID is not set

#
# Firmware Drivers
#
# CONFIG_EDD is not set
# CONFIG_DELL_RBU is not set
# CONFIG_DCDBAS is not set
CONFIG_NOHIGHMEM=y
# CONFIG_HIGHMEM4G is not set
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_ARCH_POPULATES_NODE_MAP=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_RESOURCES_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_NR_QUICK=1
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_EFI is not set
CONFIG_REGPARM=y
CONFIG_SECCOMP=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
# CONFIG_KEXEC is not set
CONFIG_PHYSICAL_START=0x100000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_COMPAT_VDSO=y

#
# Power management options (ACPI, APM)
#
CONFIG_PM=y
# CONFIG_PM_LEGACY is not set
# CONFIG_PM_DEBUG is not set
# CONFIG_PM_SYSFS_DEPRECATED is not set
# CONFIG_SOFTWARE_SUSPEND is not set

#
# ACPI (Advanced Configuration and Power Interface) Support
#
CONFIG_ACPI=y
# CONFIG_ACPI_SLEEP is not set
# CONFIG_ACPI_PROCFS is not set
CONFIG_ACPI_AC=m
CONFIG_ACPI_BATTERY=m
CONFIG_ACPI_BUTTON=m
CONFIG_ACPI_VIDEO=m
CONFIG_ACPI_FAN=m
# CONFIG_ACPI_DOCK is not set
CONFIG_ACPI_PROCESSOR=m
CONFIG_ACPI_THERMAL=m
# CONFIG_ACPI_ASUS is not set
# CONFIG_ACPI_TOSHIBA is not set
# CONFIG_ACPI_CUSTOM_DSDT is not set
CONFIG_ACPI_BLACKLIST_YEAR=0
# CONFIG_ACPI_DEBUG is not set
CONFIG_ACPI_EC=y
CONFIG_ACPI_POWER=y
CONFIG_ACPI_SYSTEM=y
CONFIG_X86_PM_TIMER=y
# CONFIG_ACPI_CONTAINER is not set
# CONFIG_ACPI_SBS is not set
# CONFIG_APM is not set

#
# CPU Frequency scaling
#
# CONFIG_CPU_FREQ is not set

#
# CPU idle PM support
#
CONFIG_CPU_IDLE=y

#
# Governors
#
CONFIG_CPU_IDLE_GOV_LADDER=y
CONFIG_CPU_IDLE_GOV_MENU=y

#
# Bus options (PCI, PCMCIA, EISA, MCA, ISA)
#
CONFIG_PCI=y
# CONFIG_PCI_GOBIOS is not set
# CONFIG_PCI_GOMMCONFIG is not set
# CONFIG_PCI_GODIRECT is not set
CONFIG_PCI_GOANY=y
CONFIG_PCI_BIOS=y
CONFIG_PCI_DIRECT=y
CONFIG_PCI_MMCONFIG=y
CONFIG_PCIEPORTBUS=y
CONFIG_PCIEAER=y
CONFIG_ARCH_SUPPORTS_MSI=y
# CONFIG_PCI_MSI is not set
CONFIG_HT_IRQ=y
CONFIG_ISA_DMA_API=y
CONFIG_ISA=y
# CONFIG_EISA is not set
# CONFIG_MCA is not set
# CONFIG_SCx200 is not set

#
# PCCARD (PCMCIA/CardBus) support
#
CONFIG_PCCARD=y
# CONFIG_PCMCIA_DEBUG is not set
CONFIG_PCMCIA=y
CONFIG_PCMCIA_LOAD_CIS=y
# CONFIG_PCMCIA_IOCTL is not set
CONFIG_CARDBUS=y

#
# PC-card bridges
#
CONFIG_YENTA=m
CONFIG_YENTA_O2=y
CONFIG_YENTA_RICOH=y
CONFIG_YENTA_TI=y
CONFIG_YENTA_ENE_TUNE=y
CONFIG_YENTA_TOSHIBA=y
# CONFIG_PD6729 is not set
# CONFIG_I82092 is not set
# CONFIG_I82365 is not set
# CONFIG_TCIC is not set
CONFIG_PCMCIA_PROBE=y
CONFIG_PCCARD_NONSTATIC=m
# CONFIG_HOTPLUG_PCI is not set

#
# Executable file formats
#
CONFIG_BINFMT_ELF=y
CONFIG_BINFMT_AOUT=y
CONFIG_BINFMT_MISC=y

#
# Networking
#
CONFIG_NET=y

#
# Networking options
#
CONFIG_PACKET=y
CONFIG_PACKET_MMAP=y
CONFIG_UNIX=y
CONFIG_XFRM=y
CONFIG_XFRM_USER=y
# CONFIG_XFRM_SUB_POLICY is not set
# CONFIG_XFRM_MIGRATE is not set
CONFIG_NET_KEY=y
# CONFIG_NET_KEY_MIGRATE is not set
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_ASK_IP_FIB_HASH=y
# CONFIG_IP_FIB_TRIE is not set
CONFIG_IP_FIB_HASH=y
# CONFIG_IP_MULTIPLE_TABLES is not set
# CONFIG_IP_ROUTE_MULTIPATH is not set
# CONFIG_IP_ROUTE_VERBOSE is not set
# CONFIG_IP_PNP is not set
CONFIG_NET_IPIP=m
CONFIG_NET_IPGRE=m
# CONFIG_NET_IPGRE_BROADCAST is not set
# CONFIG_IP_MROUTE is not set
# CONFIG_ARPD is not set
# CONFIG_SYN_COOKIES is not set
CONFIG_INET_AH=y
CONFIG_INET_ESP=y
# CONFIG_INET_IPCOMP is not set
# CONFIG_INET_XFRM_TUNNEL is not set
CONFIG_INET_TUNNEL=m
CONFIG_INET_XFRM_MODE_TRANSPORT=y
CONFIG_INET_XFRM_MODE_TUNNEL=y
CONFIG_INET_XFRM_MODE_BEET=y
CONFIG_INET_DIAG=y
CONFIG_INET_TCP_DIAG=y
# CONFIG_TCP_CONG_ADVANCED is not set
CONFIG_TCP_CONG_CUBIC=y
CONFIG_DEFAULT_TCP_CONG="cubic"
# CONFIG_TCP_MD5SIG is not set
# CONFIG_IP_VS is not set
# CONFIG_IPV6 is not set
# CONFIG_INET6_XFRM_TUNNEL is not set
# CONFIG_INET6_TUNNEL is not set
# CONFIG_NETWORK_SECMARK is not set
CONFIG_NETFILTER=y
# CONFIG_NETFILTER_DEBUG is not set

#
# Core Netfilter Configuration
#
CONFIG_NETFILTER_NETLINK=y
# CONFIG_NETFILTER_NETLINK_QUEUE is not set
# CONFIG_NETFILTER_NETLINK_LOG is not set
CONFIG_NF_CONNTRACK_ENABLED=y
CONFIG_NF_CONNTRACK=y
CONFIG_NF_CT_ACCT=y
CONFIG_NF_CONNTRACK_MARK=y
# CONFIG_NF_CONNTRACK_EVENTS is not set
CONFIG_NF_CT_PROTO_GRE=m
# CONFIG_NF_CT_PROTO_SCTP is not set
# CONFIG_NF_CONNTRACK_AMANDA is not set
CONFIG_NF_CONNTRACK_FTP=y
CONFIG_NF_CONNTRACK_H323=m
CONFIG_NF_CONNTRACK_IRC=m
# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
CONFIG_NF_CONNTRACK_PPTP=m
# CONFIG_NF_CONNTRACK_SANE is not set
# CONFIG_NF_CONNTRACK_SIP is not set
CONFIG_NF_CONNTRACK_TFTP=m
# CONFIG_NF_CT_NETLINK is not set
CONFIG_NETFILTER_XTABLES=y
CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y
CONFIG_NETFILTER_XT_TARGET_CONNMARK=y
CONFIG_NETFILTER_XT_TARGET_DSCP=y
CONFIG_NETFILTER_XT_TARGET_MARK=y
CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y
CONFIG_NETFILTER_XT_TARGET_NFLOG=y
CONFIG_NETFILTER_XT_TARGET_NOTRACK=y
CONFIG_NETFILTER_XT_TARGET_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_COMMENT=y
CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y
CONFIG_NETFILTER_XT_MATCH_CONNMARK=y
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
CONFIG_NETFILTER_XT_MATCH_DCCP=y
CONFIG_NETFILTER_XT_MATCH_DSCP=y
CONFIG_NETFILTER_XT_MATCH_ESP=y
CONFIG_NETFILTER_XT_MATCH_HELPER=y
CONFIG_NETFILTER_XT_MATCH_LENGTH=y
CONFIG_NETFILTER_XT_MATCH_LIMIT=y
CONFIG_NETFILTER_XT_MATCH_MAC=y
CONFIG_NETFILTER_XT_MATCH_MARK=y
CONFIG_NETFILTER_XT_MATCH_POLICY=y
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y
CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y
CONFIG_NETFILTER_XT_MATCH_QUOTA=y
CONFIG_NETFILTER_XT_MATCH_REALM=y
CONFIG_NETFILTER_XT_MATCH_SCTP=y
CONFIG_NETFILTER_XT_MATCH_STATE=y
CONFIG_NETFILTER_XT_MATCH_STATISTIC=y
CONFIG_NETFILTER_XT_MATCH_STRING=y
CONFIG_NETFILTER_XT_MATCH_TCPMSS=y
CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y

#
# IP: Netfilter Configuration
#
CONFIG_NF_CONNTRACK_IPV4=y
CONFIG_NF_CONNTRACK_PROC_COMPAT=y
# CONFIG_IP_NF_QUEUE is not set
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_MATCH_IPRANGE=y
CONFIG_IP_NF_MATCH_TOS=y
CONFIG_IP_NF_MATCH_RECENT=y
CONFIG_IP_NF_MATCH_ECN=y
CONFIG_IP_NF_MATCH_AH=y
CONFIG_IP_NF_MATCH_TTL=y
CONFIG_IP_NF_MATCH_OWNER=y
CONFIG_IP_NF_MATCH_ADDRTYPE=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_TARGET_LOG=y
CONFIG_IP_NF_TARGET_ULOG=y
CONFIG_NF_NAT=y
CONFIG_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
CONFIG_IP_NF_TARGET_REDIRECT=y
CONFIG_IP_NF_TARGET_NETMAP=y
CONFIG_IP_NF_TARGET_SAME=y
# CONFIG_NF_NAT_SNMP_BASIC is not set
CONFIG_NF_NAT_PROTO_GRE=m
CONFIG_NF_NAT_FTP=y
CONFIG_NF_NAT_IRC=m
CONFIG_NF_NAT_TFTP=m
# CONFIG_NF_NAT_AMANDA is not set
CONFIG_NF_NAT_PPTP=m
CONFIG_NF_NAT_H323=m
# CONFIG_NF_NAT_SIP is not set
CONFIG_IP_NF_MANGLE=y
CONFIG_IP_NF_TARGET_TOS=y
CONFIG_IP_NF_TARGET_ECN=y
CONFIG_IP_NF_TARGET_TTL=y
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set
CONFIG_IP_NF_RAW=y
# CONFIG_IP_NF_ARPTABLES is not set
# CONFIG_IP_DCCP is not set
# CONFIG_IP_SCTP is not set
# CONFIG_TIPC is not set
# CONFIG_ATM is not set
# CONFIG_BRIDGE is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_DECNET is not set
# CONFIG_LLC2 is not set
# CONFIG_IPX is not set
# CONFIG_ATALK is not set
# CONFIG_X25 is not set
# CONFIG_LAPB is not set
# CONFIG_ECONET is not set
# CONFIG_WAN_ROUTER is not set

#
# QoS and/or fair queueing
#
# CONFIG_NET_SCHED is not set
CONFIG_NET_SCH_FIFO=y
CONFIG_NET_CLS_ROUTE=y

#
# Network testing
#
# CONFIG_NET_PKTGEN is not set
# CONFIG_HAMRADIO is not set
CONFIG_IRDA=m

#
# IrDA protocols
#
CONFIG_IRLAN=m
CONFIG_IRNET=m
CONFIG_IRCOMM=m
CONFIG_IRDA_ULTRA=y

#
# IrDA options
#
CONFIG_IRDA_CACHE_LAST_LSAP=y
CONFIG_IRDA_FAST_RR=y
# CONFIG_IRDA_DEBUG is not set

#
# Infrared-port device drivers
#

#
# SIR device drivers
#
CONFIG_IRTTY_SIR=m

#
# Dongle support
#
CONFIG_DONGLE=y
# CONFIG_ESI_DONGLE is not set
# CONFIG_ACTISYS_DONGLE is not set
# CONFIG_TEKRAM_DONGLE is not set
# CONFIG_TOIM3232_DONGLE is not set
# CONFIG_LITELINK_DONGLE is not set
CONFIG_MA600_DONGLE=m
# CONFIG_GIRBIL_DONGLE is not set
# CONFIG_MCP2120_DONGLE is not set
# CONFIG_OLD_BELKIN_DONGLE is not set
# CONFIG_ACT200L_DONGLE is not set
# CONFIG_KINGSUN_DONGLE is not set

#
# Old SIR device drivers
#
CONFIG_IRPORT_SIR=m

#
# Old Serial dongle support
#
# CONFIG_DONGLE_OLD is not set

#
# FIR device drivers
#
CONFIG_USB_IRDA=m
# CONFIG_SIGMATEL_FIR is not set
# CONFIG_NSC_FIR is not set
# CONFIG_WINBOND_FIR is not set
# CONFIG_TOSHIBA_FIR is not set
# CONFIG_SMC_IRCC_FIR is not set
# CONFIG_ALI_FIR is not set
# CONFIG_VLSI_FIR is not set
# CONFIG_VIA_FIR is not set
# CONFIG_MCS_FIR is not set
CONFIG_BT=m
CONFIG_BT_L2CAP=m
CONFIG_BT_SCO=m
CONFIG_BT_RFCOMM=m
CONFIG_BT_RFCOMM_TTY=y
CONFIG_BT_BNEP=m
CONFIG_BT_BNEP_MC_FILTER=y
CONFIG_BT_BNEP_PROTO_FILTER=y
CONFIG_BT_HIDP=m

#
# Bluetooth device drivers
#
CONFIG_BT_HCIUSB=m
CONFIG_BT_HCIUSB_SCO=y
CONFIG_BT_HCIUART=m
CONFIG_BT_HCIUART_H4=y
CONFIG_BT_HCIUART_BCSP=y
CONFIG_BT_HCIBCM203X=m
CONFIG_BT_HCIBPA10X=m
CONFIG_BT_HCIBFUSB=m
CONFIG_BT_HCIDTL1=m
CONFIG_BT_HCIBT3C=m
CONFIG_BT_HCIBLUECARD=m
CONFIG_BT_HCIBTUART=m
CONFIG_BT_HCIVHCI=m
# CONFIG_AF_RXRPC is not set

#
# Wireless
#
CONFIG_CFG80211=m
CONFIG_WIRELESS_EXT=y
CONFIG_MAC80211=m
# CONFIG_MAC80211_DEBUG is not set
CONFIG_IEEE80211=m
# CONFIG_IEEE80211_DEBUG is not set
CONFIG_IEEE80211_CRYPT_WEP=m
CONFIG_IEEE80211_CRYPT_CCMP=m
CONFIG_IEEE80211_CRYPT_TKIP=m
CONFIG_IEEE80211_SOFTMAC=m
# CONFIG_IEEE80211_SOFTMAC_DEBUG is not set
CONFIG_RFKILL=y
CONFIG_RFKILL_INPUT=y

#
# Device Drivers
#

#
# Generic Driver Options
#
# CONFIG_STANDALONE is not set
# CONFIG_PREVENT_FIRMWARE_BUILD is not set
CONFIG_FW_LOADER=y
# CONFIG_SYS_HYPERVISOR is not set

#
# Connector - unified userspace <-> kernelspace linker
#
# CONFIG_CONNECTOR is not set
# CONFIG_MTD is not set

#
# Parallel port support
#
# CONFIG_PARPORT is not set

#
# Plug and Play support
#
CONFIG_PNP=y
# CONFIG_PNP_DEBUG is not set

#
# Protocols
#
CONFIG_ISAPNP=y
# CONFIG_PNPBIOS is not set
CONFIG_PNPACPI=y

#
# Block devices
#
# CONFIG_BLK_DEV_FD is not set
# CONFIG_BLK_DEV_XD is not set
# CONFIG_BLK_CPQ_DA is not set
# CONFIG_BLK_CPQ_CISS_DA is not set
# CONFIG_BLK_DEV_DAC960 is not set
# CONFIG_BLK_DEV_UMEM is not set
# CONFIG_BLK_DEV_COW_COMMON is not set
CONFIG_BLK_DEV_LOOP=m
# CONFIG_BLK_DEV_CRYPTOLOOP is not set
CONFIG_BLK_DEV_NBD=y
# CONFIG_BLK_DEV_SX8 is not set
# CONFIG_BLK_DEV_UB is not set
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_COUNT=16
CONFIG_BLK_DEV_RAM_SIZE=8192
CONFIG_BLK_DEV_RAM_BLOCKSIZE=1024
CONFIG_CDROM_PKTCDVD=m
CONFIG_CDROM_PKTCDVD_BUFFERS=8
# CONFIG_CDROM_PKTCDVD_WCACHE is not set
# CONFIG_ATA_OVER_ETH is not set

#
# Misc devices
#
# CONFIG_IBM_ASM is not set
# CONFIG_PHANTOM is not set
# CONFIG_SGI_IOC4 is not set
CONFIG_TIFM_CORE=m
CONFIG_TIFM_7XX1=m
# CONFIG_ASUS_LAPTOP is not set
# CONFIG_MSI_LAPTOP is not set
# CONFIG_SONY_LAPTOP is not set
# CONFIG_THINKPAD_ACPI is not set
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y

#
# Please see Documentation/ide.txt for help/info on IDE drives
#
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECS=y
# CONFIG_BLK_DEV_DELKIN is not set
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
# CONFIG_BLK_DEV_IDEFLOPPY is not set
CONFIG_BLK_DEV_IDESCSI=y
# CONFIG_BLK_DEV_IDEACPI is not set
# CONFIG_IDE_TASK_IOCTL is not set
CONFIG_IDE_PROC_FS=y

#
# IDE chipset support/bugfixes
#
# CONFIG_IDE_GENERIC is not set
# CONFIG_BLK_DEV_CMD640 is not set
# CONFIG_BLK_DEV_IDEPNP is not set
CONFIG_BLK_DEV_IDEPCI=y
# CONFIG_IDEPCI_SHARE_IRQ is not set
CONFIG_IDEPCI_PCIBUS_ORDER=y
# CONFIG_BLK_DEV_OFFBOARD is not set
# CONFIG_BLK_DEV_GENERIC is not set
# CONFIG_BLK_DEV_OPTI621 is not set
# CONFIG_BLK_DEV_RZ1000 is not set
CONFIG_BLK_DEV_IDEDMA_PCI=y
# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
# CONFIG_IDEDMA_ONLYDISK is not set
# CONFIG_BLK_DEV_AEC62XX is not set
# CONFIG_BLK_DEV_ALI15X3 is not set
# CONFIG_BLK_DEV_AMD74XX is not set
# CONFIG_BLK_DEV_ATIIXP is not set
# CONFIG_BLK_DEV_CMD64X is not set
# CONFIG_BLK_DEV_TRIFLEX is not set
# CONFIG_BLK_DEV_CY82C693 is not set
# CONFIG_BLK_DEV_CS5520 is not set
# CONFIG_BLK_DEV_CS5530 is not set
# CONFIG_BLK_DEV_CS5535 is not set
# CONFIG_BLK_DEV_HPT34X is not set
# CONFIG_BLK_DEV_HPT366 is not set
# CONFIG_BLK_DEV_JMICRON is not set
# CONFIG_BLK_DEV_SC1200 is not set
CONFIG_BLK_DEV_PIIX=y
# CONFIG_BLK_DEV_IT8213 is not set
# CONFIG_BLK_DEV_IT821X is not set
# CONFIG_BLK_DEV_NS87415 is not set
# CONFIG_BLK_DEV_PDC202XX_OLD is not set
# CONFIG_BLK_DEV_PDC202XX_NEW is not set
# CONFIG_BLK_DEV_SVWKS is not set
# CONFIG_BLK_DEV_SIIMAGE is not set
# CONFIG_BLK_DEV_SIS5513 is not set
# CONFIG_BLK_DEV_SLC90E66 is not set
# CONFIG_BLK_DEV_TRM290 is not set
# CONFIG_BLK_DEV_VIA82CXXX is not set
# CONFIG_BLK_DEV_TC86C001 is not set
# CONFIG_IDE_ARM is not set
# CONFIG_IDE_CHIPSETS is not set
CONFIG_BLK_DEV_IDEDMA=y
# CONFIG_IDEDMA_IVB is not set
# CONFIG_BLK_DEV_HD is not set

#
# SCSI device support
#
# CONFIG_RAID_ATTRS is not set
CONFIG_SCSI=y
CONFIG_SCSI_TGT=m
# CONFIG_SCSI_NETLINK is not set
CONFIG_SCSI_PROC_FS=y

#
# SCSI support type (disk, tape, CD-ROM)
#
CONFIG_BLK_DEV_SD=y
# CONFIG_CHR_DEV_ST is not set
# CONFIG_CHR_DEV_OSST is not set
CONFIG_BLK_DEV_SR=m
# CONFIG_BLK_DEV_SR_VENDOR is not set
CONFIG_CHR_DEV_SG=y
# CONFIG_CHR_DEV_SCH is not set

#
# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
#
CONFIG_SCSI_MULTI_LUN=y
# CONFIG_SCSI_CONSTANTS is not set
# CONFIG_SCSI_LOGGING is not set
# CONFIG_SCSI_SCAN_ASYNC is not set
CONFIG_SCSI_WAIT_SCAN=m

#
# SCSI Transports
#
# CONFIG_SCSI_SPI_ATTRS is not set
# CONFIG_SCSI_FC_ATTRS is not set
# CONFIG_SCSI_ISCSI_ATTRS is not set
# CONFIG_SCSI_SAS_ATTRS is not set
# CONFIG_SCSI_SAS_LIBSAS is not set

#
# SCSI low-level drivers
#
# CONFIG_ISCSI_TCP is not set
# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
# CONFIG_SCSI_3W_9XXX is not set
# CONFIG_SCSI_7000FASST is not set
# CONFIG_SCSI_ACARD is not set
# CONFIG_SCSI_AHA152X is not set
# CONFIG_SCSI_AHA1542 is not set
# CONFIG_SCSI_AACRAID is not set
# CONFIG_SCSI_AIC7XXX is not set
# CONFIG_SCSI_AIC7XXX_OLD is not set
# CONFIG_SCSI_AIC79XX is not set
# CONFIG_SCSI_AIC94XX is not set
# CONFIG_SCSI_DPT_I2O is not set
# CONFIG_SCSI_ADVANSYS is not set
# CONFIG_SCSI_IN2000 is not set
# CONFIG_SCSI_ARCMSR is not set
# CONFIG_MEGARAID_NEWGEN is not set
# CONFIG_MEGARAID_LEGACY is not set
# CONFIG_MEGARAID_SAS is not set
# CONFIG_SCSI_HPTIOP is not set
# CONFIG_SCSI_BUSLOGIC is not set
# CONFIG_SCSI_DMX3191D is not set
# CONFIG_SCSI_DTC3280 is not set
# CONFIG_SCSI_EATA is not set
# CONFIG_SCSI_FUTURE_DOMAIN is not set
# CONFIG_SCSI_GDTH is not set
# CONFIG_SCSI_GENERIC_NCR5380 is not set
# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set
# CONFIG_SCSI_IPS is not set
# CONFIG_SCSI_INITIO is not set
# CONFIG_SCSI_INIA100 is not set
# CONFIG_SCSI_NCR53C406A is not set
# CONFIG_SCSI_STEX is not set
# CONFIG_SCSI_SYM53C8XX_2 is not set
# CONFIG_SCSI_PAS16 is not set
# CONFIG_SCSI_PSI240I is not set
# CONFIG_SCSI_QLOGIC_FAS is not set
# CONFIG_SCSI_QLOGIC_1280 is not set
# CONFIG_SCSI_QLA_FC is not set
# CONFIG_SCSI_QLA_ISCSI is not set
# CONFIG_SCSI_LPFC is not set
# CONFIG_SCSI_SEAGATE is not set
# CONFIG_SCSI_SYM53C416 is not set
# CONFIG_SCSI_DC395x is not set
# CONFIG_SCSI_DC390T is not set
# CONFIG_SCSI_T128 is not set
# CONFIG_SCSI_U14_34F is not set
# CONFIG_SCSI_ULTRASTOR is not set
# CONFIG_SCSI_NSP32 is not set
# CONFIG_SCSI_DEBUG is not set
# CONFIG_SCSI_SRP is not set

#
# PCMCIA SCSI adapter support
#
# CONFIG_PCMCIA_AHA152X is not set
# CONFIG_PCMCIA_FDOMAIN is not set
# CONFIG_PCMCIA_NINJA_SCSI is not set
# CONFIG_PCMCIA_QLOGIC is not set
# CONFIG_PCMCIA_SYM53C500 is not set
# CONFIG_ATA is not set

#
# Old CD-ROM drivers (not SCSI, not IDE)
#
# CONFIG_CD_NO_IDESCSI is not set

#
# Multi-device support (RAID and LVM)
#
# CONFIG_MD is not set

#
# Fusion MPT device support
#
# CONFIG_FUSION is not set
# CONFIG_FUSION_SPI is not set
# CONFIG_FUSION_FC is not set
# CONFIG_FUSION_SAS is not set

#
# IEEE 1394 (FireWire) support
#
# CONFIG_FIREWIRE is not set
CONFIG_IEEE1394=m

#
# Subsystem Options
#
# CONFIG_IEEE1394_VERBOSEDEBUG is not set

#
# Controllers
#
# CONFIG_IEEE1394_PCILYNX is not set
CONFIG_IEEE1394_OHCI1394=m

#
# Protocols
#
CONFIG_IEEE1394_VIDEO1394=m
CONFIG_IEEE1394_SBP2=m
# CONFIG_IEEE1394_SBP2_PHYS_DMA is not set
CONFIG_IEEE1394_ETH1394_ROM_ENTRY=y
CONFIG_IEEE1394_ETH1394=m
CONFIG_IEEE1394_DV1394=m
CONFIG_IEEE1394_RAWIO=m

#
# I2O device support
#
# CONFIG_I2O is not set
# CONFIG_MACINTOSH_DRIVERS is not set

#
# Network device support
#
CONFIG_NETDEVICES=y
# CONFIG_DUMMY is not set
# CONFIG_BONDING is not set
# CONFIG_EQUALIZER is not set
CONFIG_TUN=m
# CONFIG_NET_SB1000 is not set
# CONFIG_ARCNET is not set
# CONFIG_PHYLIB is not set

#
# Ethernet (10 or 100Mbit)
#
CONFIG_NET_ETHERNET=y
CONFIG_MII=y
# CONFIG_HAPPYMEAL is not set
# CONFIG_SUNGEM is not set
# CONFIG_CASSINI is not set
# CONFIG_NET_VENDOR_3COM is not set
# CONFIG_LANCE is not set
# CONFIG_NET_VENDOR_SMC is not set
# CONFIG_NET_VENDOR_RACAL is not set

#
# Tulip family network device support
#
# CONFIG_NET_TULIP is not set
# CONFIG_AT1700 is not set
# CONFIG_DEPCA is not set
# CONFIG_HP100 is not set
# CONFIG_NET_ISA is not set
CONFIG_NET_PCI=y
# CONFIG_PCNET32 is not set
# CONFIG_AMD8111_ETH is not set
# CONFIG_ADAPTEC_STARFIRE is not set
# CONFIG_AC3200 is not set
# CONFIG_APRICOT is not set
# CONFIG_B44 is not set
# CONFIG_FORCEDETH is not set
# CONFIG_CS89x0 is not set
# CONFIG_DGRS is not set
# CONFIG_EEPRO100 is not set
# CONFIG_E100 is not set
# CONFIG_FEALNX is not set
# CONFIG_NATSEMI is not set
# CONFIG_NE2K_PCI is not set
# CONFIG_8139CP is not set
CONFIG_8139TOO=m
# CONFIG_8139TOO_PIO is not set
# CONFIG_8139TOO_TUNE_TWISTER is not set
# CONFIG_8139TOO_8129 is not set
# CONFIG_8139_OLD_RX_RESET is not set
# CONFIG_SIS900 is not set
# CONFIG_EPIC100 is not set
# CONFIG_SUNDANCE is not set
# CONFIG_TLAN is not set
# CONFIG_VIA_RHINE is not set
# CONFIG_SC92031 is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NETDEV_10000 is not set
# CONFIG_TR is not set

#
# Wireless LAN
#
# CONFIG_WLAN_PRE80211 is not set
CONFIG_WLAN_80211=y
# CONFIG_PCMCIA_RAYCS is not set
# CONFIG_IPW2100 is not set
CONFIG_IPW2200=m
CONFIG_IPW2200_MONITOR=y
CONFIG_IPW2200_RADIOTAP=y
CONFIG_IPW2200_PROMISCUOUS=y
CONFIG_IPW2200_QOS=y
CONFIG_IPW2200_DEBUG=y
# CONFIG_LIBERTAS is not set
# CONFIG_AIRO is not set
# CONFIG_HERMES is not set
# CONFIG_ATMEL is not set
# CONFIG_AIRO_CS is not set
# CONFIG_PCMCIA_WL3501 is not set
# CONFIG_PRISM54 is not set
# CONFIG_USB_ZD1201 is not set
# CONFIG_HOSTAP is not set
# CONFIG_BCM43XX is not set
# CONFIG_ZD1211RW is not set

#
# USB Network Adapters
#
# CONFIG_USB_CATC is not set
CONFIG_USB_KAWETH=m
CONFIG_USB_PEGASUS=m
# CONFIG_USB_RTL8150 is not set
CONFIG_USB_USBNET_MII=m
CONFIG_USB_USBNET=m
CONFIG_USB_NET_AX8817X=m
CONFIG_USB_NET_CDCETHER=m
CONFIG_USB_NET_DM9601=m
CONFIG_USB_NET_GL620A=m
CONFIG_USB_NET_NET1080=m
CONFIG_USB_NET_PLUSB=m
CONFIG_USB_NET_MCS7830=m
# CONFIG_USB_NET_RNDIS_HOST is not set
CONFIG_USB_NET_CDC_SUBSET=m
CONFIG_USB_ALI_M5632=y
CONFIG_USB_AN2720=y
CONFIG_USB_BELKIN=y
CONFIG_USB_ARMLINUX=y
# CONFIG_USB_EPSON2888 is not set
# CONFIG_USB_KC2190 is not set
# CONFIG_USB_NET_ZAURUS is not set
# CONFIG_NET_PCMCIA is not set
# CONFIG_WAN is not set
# CONFIG_FDDI is not set
# CONFIG_HIPPI is not set
CONFIG_PPP=m
# CONFIG_PPP_MULTILINK is not set
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_SYNC_TTY=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m
# CONFIG_PPPOE is not set
# CONFIG_SLIP is not set
CONFIG_SLHC=m
# CONFIG_NET_FC is not set
# CONFIG_SHAPER is not set
# CONFIG_NETCONSOLE is not set
# CONFIG_NETPOLL is not set
# CONFIG_NET_POLL_CONTROLLER is not set

#
# ISDN subsystem
#
# CONFIG_ISDN is not set

#
# Telephony Support
#
# CONFIG_PHONE is not set

#
# Input device support
#
CONFIG_INPUT=y
# CONFIG_INPUT_FF_MEMLESS is not set
# CONFIG_INPUT_POLLDEV is not set

#
# Userland interfaces
#
CONFIG_INPUT_MOUSEDEV=y
CONFIG_INPUT_MOUSEDEV_PSAUX=y
CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
# CONFIG_INPUT_JOYDEV is not set
CONFIG_INPUT_TSDEV=m
CONFIG_INPUT_TSDEV_SCREEN_X=240
CONFIG_INPUT_TSDEV_SCREEN_Y=320
CONFIG_INPUT_EVDEV=m
CONFIG_INPUT_EVBUG=m

#
# Input Device Drivers
#
CONFIG_INPUT_KEYBOARD=y
CONFIG_KEYBOARD_ATKBD=y
# CONFIG_KEYBOARD_SUNKBD is not set
# CONFIG_KEYBOARD_LKKBD is not set
# CONFIG_KEYBOARD_XTKBD is not set
# CONFIG_KEYBOARD_NEWTON is not set
# CONFIG_KEYBOARD_STOWAWAY is not set
CONFIG_INPUT_MOUSE=y
CONFIG_MOUSE_PS2=m
CONFIG_MOUSE_PS2_ALPS=y
CONFIG_MOUSE_PS2_LOGIPS2PP=y
CONFIG_MOUSE_PS2_SYNAPTICS=y
CONFIG_MOUSE_PS2_LIFEBOOK=y
CONFIG_MOUSE_PS2_TRACKPOINT=y
# CONFIG_MOUSE_PS2_TOUCHKIT is not set
# CONFIG_MOUSE_SERIAL is not set
# CONFIG_MOUSE_APPLETOUCH is not set
# CONFIG_MOUSE_INPORT is not set
# CONFIG_MOUSE_LOGIBM is not set
# CONFIG_MOUSE_PC110PAD is not set
# CONFIG_MOUSE_VSXXXAA is not set
# CONFIG_INPUT_JOYSTICK is not set
CONFIG_INPUT_TABLET=y
# CONFIG_TABLET_USB_ACECAD is not set
# CONFIG_TABLET_USB_AIPTEK is not set
# CONFIG_TABLET_USB_GTCO is not set
# CONFIG_TABLET_USB_KBTAB is not set
CONFIG_TABLET_USB_WACOM=m
# CONFIG_INPUT_TOUCHSCREEN is not set
# CONFIG_INPUT_MISC is not set

#
# Hardware I/O ports
#
CONFIG_SERIO=y
CONFIG_SERIO_I8042=y
# CONFIG_SERIO_SERPORT is not set
# CONFIG_SERIO_CT82C710 is not set
# CONFIG_SERIO_PCIPS2 is not set
CONFIG_SERIO_LIBPS2=y
# CONFIG_SERIO_RAW is not set
# CONFIG_GAMEPORT is not set

#
# Character devices
#
CONFIG_VT=y
CONFIG_VT_CONSOLE=y
CONFIG_HW_CONSOLE=y
# CONFIG_VT_HW_CONSOLE_BINDING is not set
# CONFIG_SERIAL_NONSTANDARD is not set

#
# Serial drivers
#
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_8250_PCI=y
CONFIG_SERIAL_8250_PNP=y
# CONFIG_SERIAL_8250_CS is not set
CONFIG_SERIAL_8250_NR_UARTS=4
CONFIG_SERIAL_8250_RUNTIME_UARTS=4
# CONFIG_SERIAL_8250_EXTENDED is not set

#
# Non-8250 serial port support
#
CONFIG_SERIAL_CORE=y
CONFIG_SERIAL_CORE_CONSOLE=y
# CONFIG_SERIAL_JSM is not set
CONFIG_UNIX98_PTYS=y
CONFIG_LEGACY_PTYS=y
CONFIG_LEGACY_PTY_COUNT=256

#
# IPMI
#
# CONFIG_IPMI_HANDLER is not set
# CONFIG_WATCHDOG is not set
# CONFIG_HW_RANDOM is not set
CONFIG_NVRAM=m
# CONFIG_RTC is not set
CONFIG_BLOCKER=y
CONFIG_LPPTEST=y
# CONFIG_GEN_RTC is not set
# CONFIG_DTLK is not set
# CONFIG_R3964 is not set
# CONFIG_APPLICOM is not set
# CONFIG_SONYPI is not set
CONFIG_AGP=y
# CONFIG_AGP_ALI is not set
# CONFIG_AGP_ATI is not set
# CONFIG_AGP_AMD is not set
# CONFIG_AGP_AMD64 is not set
CONFIG_AGP_INTEL=m
# CONFIG_AGP_NVIDIA is not set
# CONFIG_AGP_SIS is not set
# CONFIG_AGP_SWORKS is not set
# CONFIG_AGP_VIA is not set
# CONFIG_AGP_EFFICEON is not set
CONFIG_DRM=y
# CONFIG_DRM_TDFX is not set
# CONFIG_DRM_R128 is not set
# CONFIG_DRM_RADEON is not set
CONFIG_DRM_I810=m
CONFIG_DRM_I830=m
CONFIG_DRM_I915=m
# CONFIG_DRM_MGA is not set
# CONFIG_DRM_SIS is not set
# CONFIG_DRM_VIA is not set
# CONFIG_DRM_SAVAGE is not set

#
# PCMCIA character devices
#
CONFIG_SYNCLINK_CS=m
CONFIG_CARDMAN_4000=m
CONFIG_CARDMAN_4040=m
# CONFIG_MWAVE is not set
# CONFIG_PC8736x_GPIO is not set
# CONFIG_NSC_GPIO is not set
# CONFIG_CS5535_GPIO is not set
# CONFIG_RAW_DRIVER is not set
# CONFIG_HPET is not set
# CONFIG_HANGCHECK_TIMER is not set

#
# TPM devices
#
# CONFIG_TCG_TPM is not set
# CONFIG_TELCLOCK is not set
# CONFIG_RMEM is not set
# CONFIG_ALLOC_RTSJ_MEM is not set
CONFIG_DEVPORT=y
CONFIG_I2C=y
CONFIG_I2C_BOARDINFO=y
CONFIG_I2C_CHARDEV=y

#
# I2C Algorithms
#
CONFIG_I2C_ALGOBIT=m
CONFIG_I2C_ALGOPCF=m
CONFIG_I2C_ALGOPCA=m

#
# I2C Hardware Bus support
#
# CONFIG_I2C_ALI1535 is not set
# CONFIG_I2C_ALI1563 is not set
# CONFIG_I2C_ALI15X3 is not set
# CONFIG_I2C_AMD756 is not set
# CONFIG_I2C_AMD8111 is not set
# CONFIG_I2C_ELEKTOR is not set
CONFIG_I2C_I801=m
CONFIG_I2C_I810=m
CONFIG_I2C_PIIX4=m
# CONFIG_I2C_NFORCE2 is not set
# CONFIG_I2C_OCORES is not set
# CONFIG_I2C_PARPORT_LIGHT is not set
# CONFIG_I2C_PROSAVAGE is not set
# CONFIG_I2C_SAVAGE4 is not set
CONFIG_I2C_SIMTEC=m
CONFIG_SCx200_ACB=m
# CONFIG_I2C_SIS5595 is not set
# CONFIG_I2C_SIS630 is not set
# CONFIG_I2C_SIS96X is not set
CONFIG_I2C_STUB=m
CONFIG_I2C_TINY_USB=m
# CONFIG_I2C_VIA is not set
# CONFIG_I2C_VIAPRO is not set
# CONFIG_I2C_VOODOO3 is not set
CONFIG_I2C_PCA_ISA=m

#
# Miscellaneous I2C Chip support
#
CONFIG_SENSORS_DS1337=m
CONFIG_SENSORS_DS1374=m
CONFIG_SENSORS_EEPROM=m
CONFIG_SENSORS_PCF8574=m
CONFIG_SENSORS_PCA9539=m
CONFIG_SENSORS_PCF8591=m
CONFIG_SENSORS_MAX6875=m
# CONFIG_I2C_DEBUG_CORE is not set
# CONFIG_I2C_DEBUG_ALGO is not set
# CONFIG_I2C_DEBUG_BUS is not set
# CONFIG_I2C_DEBUG_CHIP is not set

#
# SPI support
#
# CONFIG_SPI is not set
# CONFIG_SPI_MASTER is not set

#
# Dallas's 1-wire bus
#
# CONFIG_W1 is not set
# CONFIG_HWMON is not set

#
# Multifunction device drivers
#
# CONFIG_MFD_SM501 is not set

#
# Multimedia devices
#
CONFIG_VIDEO_DEV=y
# CONFIG_VIDEO_V4L1 is not set
CONFIG_VIDEO_V4L1_COMPAT=y
CONFIG_VIDEO_V4L2=y
CONFIG_VIDEO_CAPTURE_DRIVERS=y
# CONFIG_VIDEO_ADV_DEBUG is not set
CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
CONFIG_VIDEO_OV7670=m
CONFIG_VIDEO_SAA711X=m
CONFIG_VIDEO_CX2341X=m
# CONFIG_VIDEO_VIVI is not set
# CONFIG_VIDEO_SAA5246A is not set
# CONFIG_VIDEO_SAA5249 is not set
CONFIG_VIDEO_SAA7134=m
CONFIG_VIDEO_SAA7134_ALSA=m
CONFIG_VIDEO_HEXIUM_ORION=m
CONFIG_VIDEO_HEXIUM_GEMINI=m
CONFIG_VIDEO_CX88=m
CONFIG_VIDEO_CX88_ALSA=m
CONFIG_VIDEO_CX88_BLACKBIRD=m
CONFIG_VIDEO_CAFE_CCIC=m
CONFIG_V4L_USB_DRIVERS=y
# CONFIG_VIDEO_PVRUSB2 is not set
CONFIG_VIDEO_USBVISION=m
CONFIG_USB_SN9C102=m
CONFIG_USB_ZR364XX=m
# CONFIG_RADIO_ADAPTERS is not set
# CONFIG_DVB_CORE is not set
CONFIG_VIDEO_SAA7146=m
CONFIG_VIDEO_SAA7146_VV=m
CONFIG_VIDEO_TUNER=m
CONFIG_VIDEO_BUF=m
CONFIG_VIDEO_BTCX=m
CONFIG_VIDEO_IR=m
CONFIG_VIDEO_TVEEPROM=m
# CONFIG_DAB is not set

#
# Graphics support
#
CONFIG_BACKLIGHT_LCD_SUPPORT=y
CONFIG_BACKLIGHT_CLASS_DEVICE=y
CONFIG_LCD_CLASS_DEVICE=m
# CONFIG_BACKLIGHT_PROGEAR is not set

#
# Display device support
#
# CONFIG_DISPLAY_SUPPORT is not set
# CONFIG_VGASTATE is not set
# CONFIG_FB is not set

#
# Console display driver support
#
CONFIG_VGA_CONSOLE=y
# CONFIG_VGACON_SOFT_SCROLLBACK is not set
CONFIG_VIDEO_SELECT=y
# CONFIG_MDA_CONSOLE is not set
CONFIG_DUMMY_CONSOLE=y

#
# Sound
#
CONFIG_SOUND=y

#
# Advanced Linux Sound Architecture
#
CONFIG_SND=y
CONFIG_SND_TIMER=y
CONFIG_SND_PCM=y
CONFIG_SND_HWDEP=m
CONFIG_SND_RAWMIDI=m
CONFIG_SND_SEQUENCER=y
CONFIG_SND_SEQ_DUMMY=m
CONFIG_SND_OSSEMUL=y
CONFIG_SND_MIXER_OSS=y
CONFIG_SND_PCM_OSS=y
CONFIG_SND_PCM_OSS_PLUGINS=y
CONFIG_SND_SEQUENCER_OSS=y
# CONFIG_SND_DYNAMIC_MINORS is not set
CONFIG_SND_SUPPORT_OLD_API=y
# CONFIG_SND_VERBOSE_PROCFS is not set
# CONFIG_SND_VERBOSE_PRINTK is not set
# CONFIG_SND_DEBUG is not set

#
# Generic devices
#
CONFIG_SND_AC97_CODEC=m
# CONFIG_SND_DUMMY is not set
# CONFIG_SND_VIRMIDI is not set
# CONFIG_SND_MTPAV is not set
# CONFIG_SND_SERIAL_U16550 is not set
# CONFIG_SND_MPU401 is not set

#
# ISA devices
#
# CONFIG_SND_ADLIB is not set
# CONFIG_SND_AD1816A is not set
# CONFIG_SND_AD1848 is not set
# CONFIG_SND_ALS100 is not set
# CONFIG_SND_AZT2320 is not set
# CONFIG_SND_CMI8330 is not set
# CONFIG_SND_CS4231 is not set
# CONFIG_SND_CS4232 is not set
# CONFIG_SND_CS4236 is not set
# CONFIG_SND_DT019X is not set
# CONFIG_SND_ES968 is not set
# CONFIG_SND_ES1688 is not set
# CONFIG_SND_ES18XX is not set
# CONFIG_SND_GUSCLASSIC is not set
# CONFIG_SND_GUSEXTREME is not set
# CONFIG_SND_GUSMAX is not set
# CONFIG_SND_INTERWAVE is not set
# CONFIG_SND_INTERWAVE_STB is not set
# CONFIG_SND_OPL3SA2 is not set
# CONFIG_SND_OPTI92X_AD1848 is not set
# CONFIG_SND_OPTI92X_CS4231 is not set
# CONFIG_SND_OPTI93X is not set
# CONFIG_SND_MIRO is not set
# CONFIG_SND_SB8 is not set
# CONFIG_SND_SB16 is not set
# CONFIG_SND_SBAWE is not set
# CONFIG_SND_SGALAXY is not set
# CONFIG_SND_SSCAPE is not set
# CONFIG_SND_WAVEFRONT is not set

#
# PCI devices
#
# CONFIG_SND_AD1889 is not set
# CONFIG_SND_ALS300 is not set
# CONFIG_SND_ALS4000 is not set
# CONFIG_SND_ALI5451 is not set
# CONFIG_SND_ATIIXP is not set
# CONFIG_SND_ATIIXP_MODEM is not set
# CONFIG_SND_AU8810 is not set
# CONFIG_SND_AU8820 is not set
# CONFIG_SND_AU8830 is not set
# CONFIG_SND_AZT3328 is not set
# CONFIG_SND_BT87X is not set
# CONFIG_SND_CA0106 is not set
# CONFIG_SND_CMIPCI is not set
# CONFIG_SND_CS4281 is not set
# CONFIG_SND_CS46XX is not set
# CONFIG_SND_CS5535AUDIO is not set
# CONFIG_SND_DARLA20 is not set
# CONFIG_SND_GINA20 is not set
# CONFIG_SND_LAYLA20 is not set
# CONFIG_SND_DARLA24 is not set
# CONFIG_SND_GINA24 is not set
# CONFIG_SND_LAYLA24 is not set
# CONFIG_SND_MONA is not set
# CONFIG_SND_MIA is not set
# CONFIG_SND_ECHO3G is not set
# CONFIG_SND_INDIGO is not set
# CONFIG_SND_INDIGOIO is not set
# CONFIG_SND_INDIGODJ is not set
# CONFIG_SND_EMU10K1 is not set
# CONFIG_SND_EMU10K1X is not set
# CONFIG_SND_ENS1370 is not set
# CONFIG_SND_ENS1371 is not set
# CONFIG_SND_ES1938 is not set
# CONFIG_SND_ES1968 is not set
# CONFIG_SND_FM801 is not set
CONFIG_SND_HDA_INTEL=m
# CONFIG_SND_HDSP is not set
# CONFIG_SND_HDSPM is not set
# CONFIG_SND_ICE1712 is not set
# CONFIG_SND_ICE1724 is not set
CONFIG_SND_INTEL8X0=m
# CONFIG_SND_INTEL8X0M is not set
# CONFIG_SND_KORG1212 is not set
# CONFIG_SND_MAESTRO3 is not set
# CONFIG_SND_MIXART is not set
# CONFIG_SND_NM256 is not set
# CONFIG_SND_PCXHR is not set
# CONFIG_SND_RIPTIDE is not set
# CONFIG_SND_RME32 is not set
# CONFIG_SND_RME96 is not set
# CONFIG_SND_RME9652 is not set
# CONFIG_SND_SONICVIBES is not set
# CONFIG_SND_TRIDENT is not set
# CONFIG_SND_VIA82XX is not set
# CONFIG_SND_VIA82XX_MODEM is not set
# CONFIG_SND_VX222 is not set
# CONFIG_SND_YMFPCI is not set
# CONFIG_SND_AC97_POWER_SAVE is not set

#
# USB devices
#
CONFIG_SND_USB_AUDIO=m
CONFIG_SND_USB_USX2Y=m
# CONFIG_SND_USB_CAIAQ is not set

#
# PCMCIA devices
#
# CONFIG_SND_VXPOCKET is not set
# CONFIG_SND_PDAUDIOCF is not set

#
# System on Chip audio support
#
# CONFIG_SND_SOC is not set

#
# Open Sound System
#
# CONFIG_SOUND_PRIME is not set
CONFIG_AC97_BUS=m

#
# HID Devices
#
CONFIG_HID=y
# CONFIG_HID_DEBUG is not set

#
# USB Input Devices
#
CONFIG_USB_HID=m
# CONFIG_USB_HIDINPUT_POWERBOOK is not set
# CONFIG_HID_FF is not set
CONFIG_USB_HIDDEV=y

#
# USB HID Boot Protocol drivers
#
# CONFIG_USB_KBD is not set
# CONFIG_USB_MOUSE is not set

#
# USB support
#
CONFIG_USB_ARCH_HAS_HCD=y
CONFIG_USB_ARCH_HAS_OHCI=y
CONFIG_USB_ARCH_HAS_EHCI=y
CONFIG_USB=y
# CONFIG_USB_DEBUG is not set

#
# Miscellaneous USB options
#
CONFIG_USB_DEVICEFS=y
# CONFIG_USB_DEVICE_CLASS is not set
# CONFIG_USB_DYNAMIC_MINORS is not set
# CONFIG_USB_SUSPEND is not set
# CONFIG_USB_OTG is not set

#
# USB Host Controller Drivers
#
CONFIG_USB_EHCI_HCD=y
# CONFIG_USB_EHCI_SPLIT_ISO is not set
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
# CONFIG_USB_EHCI_TT_NEWSCHED is not set
# CONFIG_USB_EHCI_BIG_ENDIAN_MMIO is not set
# CONFIG_USB_ISP116X_HCD is not set
CONFIG_USB_OHCI_HCD=m
# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
CONFIG_USB_OHCI_LITTLE_ENDIAN=y
CONFIG_USB_UHCI_HCD=y
# CONFIG_USB_SL811_HCD is not set

#
# USB Device Class drivers
#
# CONFIG_USB_ACM is not set
CONFIG_USB_PRINTER=y

#
# NOTE: USB_STORAGE enables SCSI, and 'SCSI disk support'
#

#
# may also be needed; see USB_STORAGE Help for more information
#
CONFIG_USB_STORAGE=y
# CONFIG_USB_STORAGE_DEBUG is not set
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_USBAT=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_STORAGE_ALAUDA=y
CONFIG_USB_STORAGE_KARMA=y
# CONFIG_USB_LIBUSUAL is not set

#
# USB Imaging devices
#
# CONFIG_USB_MDC800 is not set
# CONFIG_USB_MICROTEK is not set
CONFIG_USB_MON=y

#
# USB port drivers
#

#
# USB Serial Converter support
#
CONFIG_USB_SERIAL=y
# CONFIG_USB_SERIAL_CONSOLE is not set
CONFIG_USB_SERIAL_GENERIC=y
CONFIG_USB_SERIAL_AIRCABLE=m
CONFIG_USB_SERIAL_AIRPRIME=m
CONFIG_USB_SERIAL_ARK3116=m
CONFIG_USB_SERIAL_BELKIN=m
CONFIG_USB_SERIAL_WHITEHEAT=m
CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
CONFIG_USB_SERIAL_CP2101=m
CONFIG_USB_SERIAL_CYPRESS_M8=m
CONFIG_USB_SERIAL_EMPEG=m
CONFIG_USB_SERIAL_FTDI_SIO=m
CONFIG_USB_SERIAL_FUNSOFT=m
CONFIG_USB_SERIAL_VISOR=m
CONFIG_USB_SERIAL_IPAQ=m
CONFIG_USB_SERIAL_IR=m
CONFIG_USB_SERIAL_EDGEPORT=m
CONFIG_USB_SERIAL_EDGEPORT_TI=m
CONFIG_USB_SERIAL_GARMIN=m
CONFIG_USB_SERIAL_IPW=m
CONFIG_USB_SERIAL_KEYSPAN_PDA=m
# CONFIG_USB_SERIAL_KEYSPAN is not set
CONFIG_USB_SERIAL_KLSI=m
CONFIG_USB_SERIAL_KOBIL_SCT=m
CONFIG_USB_SERIAL_MCT_U232=m
CONFIG_USB_SERIAL_MOS7720=m
CONFIG_USB_SERIAL_MOS7840=m
CONFIG_USB_SERIAL_NAVMAN=m
CONFIG_USB_SERIAL_PL2303=m
CONFIG_USB_SERIAL_HP4X=m
# CONFIG_USB_SERIAL_SAFE is not set
CONFIG_USB_SERIAL_SIERRAWIRELESS=m
CONFIG_USB_SERIAL_TI=m
# CONFIG_USB_SERIAL_CYBERJACK is not set
CONFIG_USB_SERIAL_XIRCOM=m
CONFIG_USB_SERIAL_OPTION=m
# CONFIG_USB_SERIAL_OMNINET is not set
# CONFIG_USB_SERIAL_DEBUG is not set
CONFIG_USB_EZUSB=y

#
# USB Miscellaneous drivers
#
# CONFIG_USB_EMI62 is not set
# CONFIG_USB_EMI26 is not set
# CONFIG_USB_ADUTUX is not set
# CONFIG_USB_AUERSWALD is not set
# CONFIG_USB_RIO500 is not set
# CONFIG_USB_LEGOTOWER is not set
# CONFIG_USB_LCD is not set
# CONFIG_USB_BERRY_CHARGE is not set
CONFIG_USB_LED=m
# CONFIG_USB_CYPRESS_CY7C63 is not set
# CONFIG_USB_CYTHERM is not set
# CONFIG_USB_PHIDGET is not set
# CONFIG_USB_IDMOUSE is not set
# CONFIG_USB_FTDI_ELAN is not set
# CONFIG_USB_APPLEDISPLAY is not set
# CONFIG_USB_SISUSBVGA is not set
CONFIG_USB_LD=m
# CONFIG_USB_TRANCEVIBRATOR is not set
# CONFIG_USB_IOWARRIOR is not set
# CONFIG_USB_TEST is not set

#
# USB DSL modem support
#

#
# USB Gadget Support
#
CONFIG_USB_GADGET=y
# CONFIG_USB_GADGET_DEBUG_FILES is not set
CONFIG_USB_GADGET_SELECTED=y
# CONFIG_USB_GADGET_FSL_USB2 is not set
CONFIG_USB_GADGET_NET2280=y
CONFIG_USB_NET2280=y
# CONFIG_USB_GADGET_PXA2XX is not set
# CONFIG_USB_GADGET_GOKU is not set
# CONFIG_USB_GADGET_LH7A40X is not set
# CONFIG_USB_GADGET_OMAP is not set
# CONFIG_USB_GADGET_AT91 is not set
# CONFIG_USB_GADGET_DUMMY_HCD is not set
CONFIG_USB_GADGET_DUALSPEED=y
# CONFIG_USB_ZERO is not set
# CONFIG_USB_ETH is not set
# CONFIG_USB_GADGETFS is not set
CONFIG_USB_FILE_STORAGE=m
# CONFIG_USB_FILE_STORAGE_TEST is not set
CONFIG_USB_G_SERIAL=m
# CONFIG_USB_MIDI_GADGET is not set
CONFIG_MMC=y
# CONFIG_MMC_DEBUG is not set
# CONFIG_MMC_UNSAFE_RESUME is not set

#
# MMC/SD Card Drivers
#
CONFIG_MMC_BLOCK=y

#
# MMC/SD Host Controller Drivers
#
CONFIG_MMC_SDHCI=m
CONFIG_MMC_WBSD=m
CONFIG_MMC_TIFM_SD=m

#
# LED devices
#
CONFIG_NEW_LEDS=y
CONFIG_LEDS_CLASS=y

#
# LED drivers
#

#
# LED Triggers
#
# CONFIG_LEDS_TRIGGERS is not set

#
# InfiniBand support
#
# CONFIG_INFINIBAND is not set

#
# EDAC - error detection and reporting (RAS) (EXPERIMENTAL)
#
# CONFIG_EDAC is not set

#
# Real Time Clock
#
# CONFIG_RTC_CLASS is not set

#
# DMA Engine support
#
# CONFIG_DMA_ENGINE is not set

#
# DMA Clients
#

#
# DMA Devices
#

#
# Virtualization
#
# CONFIG_KVM is not set

#
# File systems
#
CONFIG_EXT2_FS=m
# CONFIG_EXT2_FS_XATTR is not set
# CONFIG_EXT2_FS_XIP is not set
CONFIG_EXT3_FS=m
# CONFIG_EXT3_FS_XATTR is not set
# CONFIG_EXT4DEV_FS is not set
CONFIG_JBD=m
# CONFIG_JBD_DEBUG is not set
CONFIG_REISERFS_FS=y
# CONFIG_REISERFS_CHECK is not set
# CONFIG_REISERFS_PROC_INFO is not set
# CONFIG_REISERFS_FS_XATTR is not set
CONFIG_JFS_FS=m
# CONFIG_JFS_POSIX_ACL is not set
# CONFIG_JFS_SECURITY is not set
# CONFIG_JFS_DEBUG is not set
# CONFIG_JFS_STATISTICS is not set
# CONFIG_FS_POSIX_ACL is not set
CONFIG_XFS_FS=m
# CONFIG_XFS_QUOTA is not set
# CONFIG_XFS_SECURITY is not set
# CONFIG_XFS_POSIX_ACL is not set
# CONFIG_XFS_RT is not set
# CONFIG_GFS2_FS is not set
# CONFIG_OCFS2_FS is not set
# CONFIG_MINIX_FS is not set
CONFIG_ROMFS_FS=y
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y
# CONFIG_QUOTA is not set
CONFIG_DNOTIFY=y
# CONFIG_AUTOFS_FS is not set
CONFIG_AUTOFS4_FS=y
CONFIG_FUSE_FS=m

#
# CD-ROM/DVD Filesystems
#
CONFIG_ISO9660_FS=m
CONFIG_JOLIET=y
CONFIG_ZISOFS=y
CONFIG_UDF_FS=m
CONFIG_UDF_NLS=y

#
# DOS/FAT/NT Filesystems
#
CONFIG_FAT_FS=m
CONFIG_MSDOS_FS=m
CONFIG_VFAT_FS=m
CONFIG_FAT_DEFAULT_CODEPAGE=866
CONFIG_FAT_DEFAULT_IOCHARSET="cp1251"
# CONFIG_NTFS_FS is not set

#
# Pseudo filesystems
#
CONFIG_PROC_FS=y
CONFIG_PROC_KCORE=y
CONFIG_PROC_SYSCTL=y
CONFIG_SYSFS=y
CONFIG_TMPFS=y
# CONFIG_TMPFS_POSIX_ACL is not set
# CONFIG_HUGETLBFS is not set
# CONFIG_HUGETLB_PAGE is not set
CONFIG_RAMFS=y
# CONFIG_CONFIGFS_FS is not set

#
# Miscellaneous filesystems
#
# CONFIG_ADFS_FS is not set
# CONFIG_AFFS_FS is not set
# CONFIG_HFS_FS is not set
CONFIG_HFSPLUS_FS=m
CONFIG_BEFS_FS=m
# CONFIG_BEFS_DEBUG is not set
# CONFIG_BFS_FS is not set
# CONFIG_EFS_FS is not set
CONFIG_CRAMFS=y
CONFIG_SQUASHFS=m
# CONFIG_SQUASHFS_EMBEDDED is not set
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
# CONFIG_SQUASHFS_VMALLOC is not set
# CONFIG_VXFS_FS is not set
# CONFIG_HPFS_FS is not set
# CONFIG_QNX4FS_FS is not set
# CONFIG_SYSV_FS is not set
CONFIG_UFS_FS=m
# CONFIG_UFS_FS_WRITE is not set
# CONFIG_UFS_DEBUG is not set

#
# Network File Systems
#
# CONFIG_NFS_FS is not set
# CONFIG_NFSD is not set
CONFIG_SMB_FS=y
CONFIG_SMB_NLS_DEFAULT=y
CONFIG_SMB_NLS_REMOTE="cp866"
CONFIG_CIFS=y
CONFIG_CIFS_STATS=y
# CONFIG_CIFS_STATS2 is not set
# CONFIG_CIFS_WEAK_PW_HASH is not set
# CONFIG_CIFS_XATTR is not set
# CONFIG_CIFS_DEBUG2 is not set
# CONFIG_CIFS_EXPERIMENTAL is not set
# CONFIG_NCP_FS is not set
# CONFIG_CODA_FS is not set
# CONFIG_AFS_FS is not set
# CONFIG_9P_FS is not set

#
# Partition Types
#
# CONFIG_PARTITION_ADVANCED is not set
CONFIG_MSDOS_PARTITION=y

#
# Native Language Support
#
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="koi8-r"
CONFIG_NLS_CODEPAGE_437=y
# CONFIG_NLS_CODEPAGE_737 is not set
# CONFIG_NLS_CODEPAGE_775 is not set
# CONFIG_NLS_CODEPAGE_850 is not set
# CONFIG_NLS_CODEPAGE_852 is not set
CONFIG_NLS_CODEPAGE_855=m
# CONFIG_NLS_CODEPAGE_857 is not set
# CONFIG_NLS_CODEPAGE_860 is not set
# CONFIG_NLS_CODEPAGE_861 is not set
# CONFIG_NLS_CODEPAGE_862 is not set
# CONFIG_NLS_CODEPAGE_863 is not set
# CONFIG_NLS_CODEPAGE_864 is not set
# CONFIG_NLS_CODEPAGE_865 is not set
CONFIG_NLS_CODEPAGE_866=y
# CONFIG_NLS_CODEPAGE_869 is not set
# CONFIG_NLS_CODEPAGE_936 is not set
# CONFIG_NLS_CODEPAGE_950 is not set
# CONFIG_NLS_CODEPAGE_932 is not set
# CONFIG_NLS_CODEPAGE_949 is not set
# CONFIG_NLS_CODEPAGE_874 is not set
# CONFIG_NLS_ISO8859_8 is not set
# CONFIG_NLS_CODEPAGE_1250 is not set
CONFIG_NLS_CODEPAGE_1251=y
CONFIG_NLS_ASCII=y
CONFIG_NLS_ISO8859_1=y
# CONFIG_NLS_ISO8859_2 is not set
# CONFIG_NLS_ISO8859_3 is not set
# CONFIG_NLS_ISO8859_4 is not set
CONFIG_NLS_ISO8859_5=y
# CONFIG_NLS_ISO8859_6 is not set
# CONFIG_NLS_ISO8859_7 is not set
# CONFIG_NLS_ISO8859_9 is not set
# CONFIG_NLS_ISO8859_13 is not set
# CONFIG_NLS_ISO8859_14 is not set
# CONFIG_NLS_ISO8859_15 is not set
CONFIG_NLS_KOI8_R=y
# CONFIG_NLS_KOI8_U is not set
CONFIG_NLS_UTF8=y

#
# Distributed Lock Manager
#
# CONFIG_DLM is not set

#
# Instrumentation Support
#
# CONFIG_PROFILING is not set
CONFIG_PROFILE_NMI=y
# CONFIG_KPROBES is not set

#
# Kernel hacking
#
CONFIG_TRACE_IRQFLAGS_SUPPORT=y
# CONFIG_PRINTK_TIME is not set
CONFIG_ENABLE_MUST_CHECK=y
CONFIG_MAGIC_SYSRQ=y
CONFIG_UNUSED_SYMBOLS=y
# CONFIG_DEBUG_FS is not set
# CONFIG_HEADERS_CHECK is not set
# CONFIG_DEBUG_KERNEL is not set
# CONFIG_EVENT_TRACE is not set
# CONFIG_FUNCTION_TRACE is not set
# CONFIG_WAKEUP_TIMING is not set
# CONFIG_CRITICAL_PREEMPT_TIMING is not set
# CONFIG_CRITICAL_IRQSOFF_TIMING is not set
CONFIG_DEBUG_BUGVERBOSE=y
CONFIG_EARLY_PRINTK=y
CONFIG_X86_FIND_SMP_CONFIG=y
CONFIG_X86_MPPARSE=y
CONFIG_DOUBLEFAULT=y

#
# Security options
#
# CONFIG_KEYS is not set
# CONFIG_SECURITY is not set

#
# Cryptographic options
#
CONFIG_CRYPTO=y
CONFIG_CRYPTO_ALGAPI=y
CONFIG_CRYPTO_BLKCIPHER=y
CONFIG_CRYPTO_HASH=y
CONFIG_CRYPTO_MANAGER=y
CONFIG_CRYPTO_HMAC=y
# CONFIG_CRYPTO_XCBC is not set
# CONFIG_CRYPTO_NULL is not set
CONFIG_CRYPTO_MD4=m
CONFIG_CRYPTO_MD5=y
CONFIG_CRYPTO_SHA1=y
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_GF128MUL is not set
CONFIG_CRYPTO_ECB=y
CONFIG_CRYPTO_CBC=y
CONFIG_CRYPTO_PCBC=m
# CONFIG_CRYPTO_LRW is not set
# CONFIG_CRYPTO_CRYPTD is not set
CONFIG_CRYPTO_DES=y
# CONFIG_CRYPTO_FCRYPT is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_TWOFISH_586 is not set
# CONFIG_CRYPTO_SERPENT is not set
CONFIG_CRYPTO_AES=y
CONFIG_CRYPTO_AES_586=y
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_TEA is not set
CONFIG_CRYPTO_ARC4=y
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_DEFLATE is not set
CONFIG_CRYPTO_MICHAEL_MIC=y
CONFIG_CRYPTO_CRC32C=y
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_TEST is not set

#
# Hardware crypto devices
#
# CONFIG_CRYPTO_DEV_PADLOCK is not set
CONFIG_CRYPTO_DEV_GEODE=m

#
# Library routines
#
CONFIG_BITREVERSE=y
CONFIG_CRC_CCITT=y
# CONFIG_CRC16 is not set
# CONFIG_CRC_ITU_T is not set
CONFIG_CRC32=y
CONFIG_LIBCRC32C=y
CONFIG_ZLIB_INFLATE=y
CONFIG_ZLIB_DEFLATE=m
CONFIG_TEXTSEARCH=y
CONFIG_TEXTSEARCH_KMP=y
CONFIG_TEXTSEARCH_BM=y
CONFIG_TEXTSEARCH_FSM=y
CONFIG_PLIST=y
CONFIG_HAS_IOMEM=y
CONFIG_HAS_IOPORT=y
CONFIG_HAS_DMA=y
CONFIG_GENERIC_HARDIRQS=y
CONFIG_GENERIC_IRQ_PROBE=y
CONFIG_X86_BIOS_REBOOT=y
CONFIG_KTIME_SCALAR=y

Читать далее

Эмулятор VirtualBox: работа и впечатления



27 коммент.
Для того, чтобы запускать другие операционные системы внутри уже установленной, есть множество программ-эмуляторов: QEMU, VMware, WINE и другие. Но вот появился VirtualBox, заманивающий красочным графическим интерфейсом и высокой скоростью эмуляции. Скачав версию эмулятора VirtualBox для своей операционной системы отсюда, можно совершенно бесплатно (для персонального использования) посмотреть на это чудо.


Установка
Всё описанное далее разворачивалось на Debian GNU/Linux. Пакет VirtualBox_1.3.6_Debian_sarge_i386.deb при установке потянул за собой libxalan18 и libxerces25 суммарным объёмом на 7 Мб. К тому же потребовал заголовков ядра - при установке собирается ускоряющий модуль.


Установка прошла гладко, при этом была создана новая группа vboxusers.
Creating group 'vboxusers'. VM users must be member of that group!
Собственно, после этого следует добавить своего пользователя в эту группу:
sudo gpasswd -a beast vboxusers
Перелогиниваемся в систему - вот и всё. Теперь, если посмотреть вывод lsmod, можно увидеть там модуль нового эмулятора.
vboxdrv 28420 0
Кстати, несколько забегая вперёд, если у вас при этом загружен kqemu, то ничего страшного не произойдёт: оба эмулятора могут работать вместе одновременно, в любых режимах и с любыми ОС внутри. Соседствуют мирно, работают без нареканий на общее благо простого линуксоида.


Несколько слов о VirtualBox
Как говорится на официальном сайте, VirtualBox основан на QEMU и использует некоторые его наработки. При этом поддерживаются возможности новых процессоров, обладающих аппаратной виртуализацией - но это не мешает использовать эмулятор и на обычных процессорах.


VirtualBox в работе
Довольно умных фраз о тонкостях виртуализации: самое время запалить что-нибудь интересное внутри этого ящика. Запускаем его, набирая в консольке
VirtualBox
и перед нами должно появиться графическое окошко. Интерфейс его очевиден - кнопки с простыми названиями типа New и Start в пояснениях не нуждаются. Поэтому сходу создаём новую виртуальную машину:



Программа будет выдавать окошки, в которых графическим способом придётся задавать параметры будущей виртуальной машины. Сначала это развлекает, но потом, кстати, начинает утомлять: если мне надо быстренько запалить Кноппикс, приходится тыкать по всем кнопкам сначала - в QEMU и bash_history всё куда быстрее...
Одна вещь в VirtualBox радует: это динамически задаваемый размер виртуального жёсткого диска. Задаём начальный размер, и он будет увеличиваться по мере надобности.


Все настройки сделаны, теперь жмём Start и пробуем установить внутри, например, свой любимый дистрибутив.



Особенности работы с VirtualBox
Тем, кто долго работал с QEMU, многое в VirtualBox будет понятно, но есть и существенные отличия. Если ткнуть в "экран" виртуальной машины, клавиатура и мышь подключаются к гостевой ОС. При этом для выхода из режима гостевой ОС нужно нажать на правый CTRL, а не на ALT+SHIFT по привычке. Кроме того, для перехода на другую раскладку в гостевой ОС нажимаем комбинацию клавиш хост-системы. Мелочь, а неприятно оказаться отрезанным от своей родной системы - и справку не откроешь...

Кроме того, есть глюки с полноэкранным режимом: однажды не удалось переключиться обратно после того, как в полноэкранном режиме я попытался сделать скриншота в гимпе из хост-системы. В QEMU это проходит без вопросов, а тут не смог переключиться обратно - пришлось сбрасывать иксы.
В полноэкранном режиме VirtualBox не переключает экран в более низкое разрение, как при использовании SDL, а просто выводит на чёрном поле экран гостевой ОС, как mplayer с видеовыводом x11. При этом графический интерфейс гостьОС начинает ощутимо тормозить.
Есть у VirtualBox и консольный интерфейс, использующий SDL - как QEMU. Но синтаксис команд, несколько скудно описанный в справочнике, довольно замороченный. И быструю справку по нему не получить: только в графическом режиме.

Загрузка и выгрузка ядерного модуля эмулятора
Если VirtualBox используется на машине, работающей в режиме 24/7, то наличие в памяти ядерного модуля может быть нежелательным по разным причинам. Если выгрузка проблем не представляет:
sudo rmmod vboxdrv
то загрузка модуля имеет особенности.
Для загрузки и приведения в рабочее состояние модуля для VirtualBox нужно не только загрузить его, но и дать полные права файлу-устройству:
sudo modprobe vboxdrv
sudo chmod 777 /dev/vboxdrv
иначе будете получать при запуске эмулятора следующую ошибку:
/dev/vboxdrv not writable for some reason. If you recently added the current
user to the vboxusers group then you have to logout and re-login to take the
change effect.
После этого ядерный модуль заработает в штатном режиме. Опять-таки, в отличие от QEMU, нельзя запустить VirtualBox без ускорителя.


Скорость эмуляции VirtualBox
Эмулятор очень шустрый, особенно при операциях с графикой: графический интерфейс гостьОС совершенно не тормозит в оконном режиме. Скорость работы как с Linux (на примере Кноппикса), так и со Windows XP примерно такая же, как и в QEMU. Только графика отзывчивее. Кроме того, при работе эмулятора происходит постоянная загрузка процессора под 100% - новый QEMU в этом плане куда экономнее.


Точность эмуляции VirtualBox
Скорость - это хорошо, но хотелось бы ещё и точности эмуляции. Под этим подразумевается сходное поведение гостьОС внутри эмулятора и на реальном железе.
Linux (Кноппикс и Дебиан) и BSD-системы (Frenzy) работали нормально, быстро и без глюков. C Windows нужно быть готовым к нештатным ситуациям: например, отмонтирование и выброс CD-ROM в эмуляторе приводит к мгновенной перезагрузке Windows внутри эмулятора.
Попытка запуска внутри VirtualBox BeOS и Haiku приводит к одному результату: эти ОС вываливаются в kernel panic. Хотя Haiku в QEMU идёт без проблем.


Выводы
Некоторое время использования VirtualBox позволяет поделиться следующими впечатлениями.

Что понравилось
  • удобен для новичков и всех, кто не часто пользуется виртуальными машинами;
  • хорошая поддержка USB;
  • задел на будущее - есть поддержка аппаратной виртуализации;
  • отличная работа с графикой: графические интерфейсы гостьОС не тормозят, работать можно с комфортом.

Что НЕ понравилось
  • глюки полноэкранного режима - определённо следует дорабатывать;
  • консольный режим не проработан: нельзя получить быструю справку по ключам эмулятора, нельзя указать много параметров (как в QEMU);
  • не может работать без модуля виртуализации - не всегда хочется, чтобы в памяти болтался сомнительного содержания ядерный модуль;
  • документация - только в хелпе графического интерфейса, никаких манов;
  • довольно посредственная точность эмуляции, особенно экзотических и альтернативных ОС.
В целом, можно сказать: хороший и быстрый эмулятор для начинающих виртуализаторов без особых претензий и не для частого использования.
Читать далее

Новые возможности dcraw



14 коммент.
Как уже отмечалось здесь, в Линукс достаточно приложений по обработке RAW-файлов. Этот пост посвящён более глубокому описанию dcraw - лучшей утилиты для конвертирования RAW-файлов. Её возможностей хватит и фотографам, и даже таким специфическим пользователям, как физики-оптики.

Предисловие
RAW-формат это оцифрованные данные прямо с матрицы фотоприёмника, ещё не прошедшие через многочисленные (и часто нежелательные) фильтры улучшения изображений. Эта чрезвычайно полезная возможность будет оценена по достоинству продвинутыми фотографами и другими специалистами: можно компенсировать пересветы или недоэкспонированные участки фотографии, менять баланс белого и цветовую температуру. Более того, RAW-файл содержит ещё не интерполированные данные - то есть просто полутоновую матрицу отсчётов на каждый пиксель - и вы можете использовать эти данные для точных экспериментов. Например, можно записать на матрицу фотоприёмника цифровую голограмму и потом математически восстановить её.


Возможности dcraw
Описание соответствует dcraw версии 8.64 (последняя версия утилиты тут) и выше (пост будет периодически обновляться), в значительной степени основанное на руководстве (русская версия и оригинал на английском). Скажу сразу: программа консольная и не предназначена для интерактивного использования, для этого есть несколько графических обёрток, например UFRaw. Параметры программы сгруппированы по типу операций, для наглядности будут приведены рисунки.

Вызов программы стандартный:
dcraw [ПАРАМЕТРЫ]... [ИМЯ_ФАЙЛА]
Если параметров несколько, они разделяются пробелами.


Диагностика и вспомогательные операции
Параметр
Описание

-v
Заставляет программу выводить больше диагностических сообщений в процессе конвертирования. По умолчанию программа будет "молча" конвертировать файлы (и это правильно, и это unix way).

Пример:
dcraw -4 -v img_1981.cr2
Loading Canon EOS 400D DIGITAL image from img_1981.cr2 ...
Scaling with black 256, multipliers 2.630775 1.000000 1.249379 1.000000
AHD interpolation...
Converting to sRGB colorspace...
Writing data to img_1981.ppm ...

-e

Позволяет выделить из RAW-файла миниатюру для предварительного просмотра. Полученное изображение будет иметь прибавку к имени вида .thumb.jpg

Пример:
dcraw -4 -v -e img_1981.cr2
Writing data to img_1981.thumb.jpg ...


-i
Получить информацию о RAW-файле без конвертирования.

-i -v
Получить не только информацию о файле, но и показать метаданные, записанные при съёмке.

Пример:
dcraw -v -i img_1981.cr2

Filename: img_1981.cr2
Timestamp: Sun Mar 18 22:27:38 2007
Camera: Canon EOS 400D DIGITAL
ISO speed: 100
Shutter: 30.0 sec
Aperture: f/5.6
Focal length: 55.0 mm
Secondary pixels: yes
Embedded ICC profile: no
Decodable with dcraw: yes
Thumb size: 1936 x 1288
Full size: 3948 x 2622
Image size: 3906 x 2602
Output size: 3906 x 2602
Raw colors: 3
Filter pattern: RGGBRGGBRGGBRGGB
Daylight multipliers: 2.423860 0.921348 1.151113
Camera multipliers: 1813.000000 1133.000000 2229.000000 1133.000000

-z
Изменить время доступа и модификации на AVI, JPG или RAW файлах на время, когда фотографии были сняты. Предполагается, что формат времени установлен по Гринвичу (UTC).
Пример:
До применения команды

$ ls -lh | grep cr2
-rwxr-xr-x 1 penta4 penta4 8,0M 2007-03-18 22:28 img_1981.cr2
После применения команды$ dcraw -z img_1981.cr2 $ ls -lh | grep cr2-rwxr-xr-x 1 penta4 penta4 8,0M 2007-03-19 01:27 img_1981.cr2


Шумоподавление
Параметр

Описание

-n
Установить порог для вейвлет-метода подавления шумов. Лучшие результаты при n=100...1000.
С версии 8.60 до 8.63 в dcraw использовался метод шумоподавления Daubechies 9/7 из стандарта сжатия изображений JPEG2000. С версии 8.64 используется алгоритм "A trous" с вейвлетом типа "Мексиканская шляпа" (Mexican Hat) с параметрами (-0.25 0.5 -.025). Из частных сообщений с автором программы, Дэйвом Коффином.


-K темновой_кадр.pgm
Вычитание темнового кадра из изображения для уменьшения влияния шумов фотоприёмника. Чтобы получить такой кадр, следует сделать снимок в RAW при закрытой крышке объектива и дать команду dcraw -D -4 -j -t 0 имятемногокадра



Дополнительные параметры изображения
Параметр

Описание

-s [0-99]
Выбрать другое изображение из RAW-файла, если их там несколько. Число указывает номер изображения внутри файла. Например, камера Fuji Super CCD SR генерирует второе недоэкспонированное изображение для того, чтобы показать тонкие детали в светлых областях.

-j
Показывает изображение, повёрнутое на 45 градусов для камер Fuji Super CCD. Относится к камерам Fuji Super CCD и другим с пикселями не квадратной формы. Опция гарантирует, что каждый выходной пиксель соответствует одному RAW-пикселю. Если к вашей камере это не относится, опция будет проигнорирована.

-t [0-7]
Повернуть изображение (по умолчанию поворота нет, t 0). Поворот на 90, 180 и 270 градусов по часовой стрелке это t 1 2 и 3 соответственно; против часовой стрелки t 4 5 и 6 на те же углы.


Работа с цветом
Параметр

Описание

-b
Позволяет настроить яркость изображения. По умолчанию запись в 8-битный формат идёт в соответствии с телевизионным стандартом ITU-R BT.709. Это означает, в частности, что цветовая температура устанавливается как 6702К. Если результат слишком светлый или тёмный, следует воспользоваться ключом -b для корректировки. Как выяснилось из частного общения с автором программы, указание параметра приводит к простому умножению данных на значение параметра, до применения гамма-коррекции. По умолчанию -b 1.0


-a
Использовать автоматический баланс белого: по умолчанию это фиксированный баланс белого, основанный на фотографии белого листа бумаги в солнечном свете.

-A отступ_слева отступ_сверху ширина высота
Рассчитывает баланс белого, используя прямоугольную область изображения. Вначале выполните dcraw -j -t 0 и выберите область с нейтрально-серым цветом.

-C множ_увеличения_красного множ_увеличения_синего
Эта опция позволяет компенсировать хроматические аберрации изображения, увеличивая красный и синий цветовые слои в заданное множителями количество раз (обычно от 0.999 до 1.001) для устранения хроматической аберрации.

-w
Использовать баланс белого, определённый настройками камеры. Если сведений о балансе белого нет, будет использовано умолчание (солнечный свет).


-r
множR множG множB множG
Коэффициенты цветового масштабирования, colour scaling. Они применяются к изображению потому, что на матрице камеры стоят светофильтры и специальный IR-блокирующий фильтр. Чтобы вернуть правильное соотношение интенсивностей цветовых каналов, электроника камеры рассчитывает цветовые множители для данного снимка - это четыре числа, соответствующие пикселям под светофильтрами R G B G. Важно отметить, что эти множители от кадра к кадру меняются. Для зелёного коэффициентов два, и чаще всего они совпадают - но не всегда. Очень важно для получения цветных линейных изображений из RAW-файла.


-k
число
Установить уровень чёрного - это значит, что все отсчёты по уровню ниже, чем число, будут объявлены нулём, то есть чёрным (потому что ниже этого уровня, как правило, шумы). Эта опция очень важна для профессионального применения: дело в том, что установив параметр "-k 0" можно получить реальный уровень шумов фотокамеры. По умолчанию зависит от уровня постоянного шума камеры, который умеет свойство увеличиваться с возрастанием экспозиции.


-H [0-9]

Обработка светлых областей.
-H 0 - срезать пересвеченные области до сплошного белого цвета, режим по умолчанию.
-H 1 - не срезать пересвеченные пиксели, отображать оттенками розового (позволяет сохранить детали изображения).
-H 2-9 - восстанавливать пересветы. Меньшие цифры лучше подходят для белых областей, высокие - для цветных областей.
-H 5
приводится Дэйвом Коффином как компромиссный вариант.
Пример на рисунке ниже, -H 0 (слева) -H 1, -H 2, -H 5 -H 9 (справа)


-o [0-5]
Цветовое пространство выходного изображения:
0 Собственное цветовое пространство камеры;
1 sRGB D65 (по умолчанию);
2 Adobe RGB (1998) D65;
3 Wide Gamut RGB D65;
4 Kodak ProPhoto RGB D65;
5 XYZ;

Пример на рисунке ниже, от -o 0 (слева) до -о 5 (справа)



-p camera.icm [ -o output.icm ]
Возможность использования специфических цветовых профилей. По умолчанию используется sRGB.


-p embed

Использование цветового профиля, указанного в RAW-файле.


Интерполяция баеровского массива
Параметр
Описание

-q [0-3]
Управление качеством интерполяции, применение методов:
-q 0 билинейная интерполяция (высокая скорость, но плохое качество).
При визуальном наблюдении заметны артефакты на контрастных участках.
-q 1 алгоритм по Переменному Числу Градиентов (Variable Number of Gradients, VNG)
Артефактов, по сравнению с билинейной интерполяцией, заметно меньше.

-q 2 алгоритм по Группировка Пикселей по Шаблону (Patterned Pixel Grouping, PPG)
-q 3 (по умолчанию) алгоритм использования Адаптивной Гомогенно-Ориентированной интерполяции (Adaptive Homogeneity-Directed, AHD)
Артефакты визуально не заметны, мелкие детали отрисованы хорошо.

-d
Документальный режим - без цветов, без интерполяции. На выходе - полутоновое изображение, к которому применены коэффициенты цветового масштабирования и срезание постоянной составляющей шума. Изображение не интерполировано, однако разогнано на весь диапазон значений 8 или 16 бит.

-D

Документальный режим, то же, что -d, но без применения цветового масштабирования (то есть применения множителей пикселов). Полностью "сырое" изображение,
соответствующее буквально тому, что видела матрица фотоприёмника, с реальными шумами матрицы и её возможными дефектами. Очень полезная опция для научных применений.

Пример: отличие -d (слева) и -D (справа)



При этом в консоли даётся пояснение - никаких множителей цветов не применяется:
$ dcraw -v -d IMG_0065.CR2
Loading Canon EOS 400D DIGITAL image from IMG_0065.CR2 ...
Scaling with black 256, multipliers 2.630775 1.000000 1.249379 1.000000
Building histograms...
Writing data to IMG_0065.pgm ...

$ dcraw -v -D IMG_0065.CR2
Loading Canon EOS 400D DIGITAL image from IMG_0065.CR2 ...
Building histograms...
Writing data to IMG_0065.pgm ...

-h
Параметр позволяет получить изображение половинного размера очень быстро (вдвое быстрее, чем -q 0)
Пример: изображение по умолчанию (слева) и с ключом -h (справа)



-f
Интерполировать баеровский массив RGGB как четыре цвета.Эта опция полезна, когда выходное изображение содержит артефакты при интерполяции 2х2 как VNG алгоритмом, так и AHD.


Запись полученных изображений
Параметр
Описание

-4
Запись в 16-битный формат PPM с линейной гаммой. По умолчанию пишется в 8-битный формат с гаммой 0.45

-T
Запись в формат TIFF вместо PPM.

-c
Выдача результата в стандартных выход (в консоль) вместо записи в файл.

Заключение
Этот замечательный конвертор даёт очень много интересных возможностей для обработки изображений с фотоприёмников. Важно, что dcraw, в отличие от разного рода проприетарных поделий, гарантирует, что на выходе будет ровно то, что вы ожидаете, а не то, чем вводят в заблуждение изготовители цифровых камер.
Более того, у dcraw есть просто уникальные возможности по вытаскиванию чистых RAW-снимков - то есть буквально того, что видела матрица. Это критично для научных приложений: ни о каком применении гаммы, а тем более всяких повышающих резкость фильтров, не может быть и речи.
Таким образом, в наших руках, благодаря Дейву Коффину, есть замечательный, открытый и свободный конвертор, позволяющий использовать возможности цифровых камер на полную мощность.
Читать далее

Тонкости эмулятора QEMU и хитрости ускорителя kqemu



4 коммент.
Некоторое время назад я уже писал о найденных финтах QEMU - но со времён версии 0.7.2 эти финты несколько "заржавели", и к ним добавились новые. Так, в версиях QEMU 0.8 и далее есть поддержка USB и многопроцессорности, а ещё добавилось возможностей у kqemu. Об этом я расскажу ниже в посте.

Ускоритель kqemu
У него прибавилось возможностей, которые позволяют ещё более ускорить работу эмулируемой ОС. Основная изюминка нового kqemu - возможность полной виртуализации: не только пользовательского кода ОС, но и кода ядра. Это существенно ускоряет дисковые операции и отрисовку интерфейса.

Полная виртуализация
Для этого нужно добавить ключ -kernel-kqemu в вызов эмулятора. Сие существенно ускоряет эмуляцию некоторых ОС. Фабрис Беллард для простых смертных в общих чертах объясняет тут, что ускорение от этого ключа будет для гостевых ОС на базе Linux 2.4.* максимальным, меньше для Linux 2.6.*, а так же для Зла2000 и ЗлаХП (но это нельзя использовать при инсталляции).

Здесь углублённая техническая документация по ускорителю kqemu - так как я мало что из неё понял (ибо не программист), просто дам ссылку.

Поэтому при вызове эмулятора:

'-no-kqemu' пишем, если эмулируем экзотические ОС (типа ReactOS, Haiku, MenuetOS и тому подобное). Это позволит нормально запуститься гостевой ОС и работать устойчиво. Но это существенно снижает скорость работы гостевой ОС и повышает нагрузку на вентилятор процессора :-)

'-kernel-kqemu'
- пишем, чтобы включить полную виртуализацию для Linux 2.4, Linux 2.6, Зла2000 и ЗлаХП. Это приводит к заметному ускорению эмуляции (1.5-2 раза) гостевых ОС без потери точности эмуляции. При этом, если запросить у эмулятора (CTRL+ALT+ цифра 2) info kqemu, он должен написать kqemu support: enabled for user and kernel code

- если не писать ничего, то только пользовательский код выполняется на процессоре хост-системы, а код ядра динамически транслируется. При этом (CTRL+ALT+ цифра 2) info kqemu будет писать kqemu support: enabled for user code

Поддержка полной виртуализации есть для 32-разрядных систем - для 64-разрядных только в экспериментальной стадии. В случае Зла2000/Хп нельзя использовать полную виртуализацию при установке!

Полная виртуализация не может работать со всеми ОС потому, что она делает предположения об инструкциях, которые гостевые ОС используют. Однако следует отметить, что полная виртуализация (как, впрочем, и обычная) изначально защищённая: весь код выполняется в пространстве пользователя и он не сможет повредить хост-ОС.

Распараллеливание эмуляции
Для этого существует ключ '-smp n', где n - число процессоров (по умолчанию 1). Странно, но у меня при тестировании это привело не к ускорению, а к замедлению эмуляции: тот же Кноппикс опознавал систему как двухпроцессорную, но при этом работал медленнее, чем при однопроцессорном режиме.

Заключение
Это, конечно же, не все возможности QEMU и kqemu - в этом посте упор делается на описание возможностей kqemu по части полной виртуализации и ускорения тем самым эмулируемых ОС. При этом использовалась информация отсюда хотя и на английском.
Читать далее

Обновление dcraw в Дебиане



20 коммент.
В дистрибутиве есть dcraw, но старый. В backports новой версии нет, из Etch ставить - просит снести и обновить несколько системных пакетов. Ниже - маленькая заметка о сборке dcraw. Не debian way, но что поделать....

Против Истинного Пути Дебиан
При попытке установить новую версию из пакетов получил от APT такое вот предложение:
# apt-get install dcraw
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Будут установлены следующие дополнительные пакеты:
libc6 libc6-dev locales tzdata
Настойчиво рекомендуемые пакеты:
gphoto2 glibc-doc manpages-dev
Пакеты, которые будут УДАЛЕНЫ:
base-config initrd-tools kernel-image-2.6.8-2-386
НОВЫЕ пакеты, которые будут установлены:
tzdata
Пакеты, которые будут обновлены:
dcraw libc6 libc6-dev locales
обновлено 4, установлено 1 новых пакетов, для удаления отмечено 3 пакетов, и 588 пакетов не обновлено.
Необходимо скачать 11,9MБ архивов.
После распаковки объем занятого дискового пространства уменьшится на 41,1MB.
Хотите продолжить? [Д/н] n
Как говорил почтальон Печкин: "и не надо меня из фоторужья щёлкать: я, может, только жить начинаю - на пенсию перехожу!" :-)
Поэтому скачал dcraw.c с сайта Дэйва Коффина и попытался собрать. На сайте есть несколько рекомендаций относительно сборки - для не особо искушённых. При попытке собрать так:
gcc -o dcraw -O4 dcraw.c -lm -ljpeg -llcms
посыпалась ругань вида:
dcraw.c:45:21: jpeglib.h: No such file or directory
dcraw.c:48:18: lcms.h: No such file or directory
dcraw.c:1920: error: syntax error before "fill_input_buffer"
dcraw.c:1920: error: syntax error before "cinfo"
dcraw.c: In function `fill_input_buffer':
dcraw.c:1927: error: `cinfo' undeclared (first use in this function)
dcraw.c:1927: error: (Each undeclared identifier is reported only once
dcraw.c:1927: error: for each function it appears in.)
dcraw.c:1929: error: `TRUE' undeclared (first use in this function)
dcraw.c: In function `kodak_jpeg_load_raw':
dcraw.c:1934: error: storage size of `cinfo' isn't known
dcraw.c:1935: error: storage size of `jerr' isn't known
dcraw.c:1936: error: `JSAMPARRAY' undeclared (first use in this function)
dcraw.c:1936: error: syntax error before "buf"
dcraw.c:1937: error: `pixel' undeclared (first use in this function)
dcraw.c:1937: error: subscripted value is neither array nor pointer
dcraw.c:1944: error: `TRUE' undeclared (first use in this function)
dcraw.c:1953: error: `buf' undeclared (first use in this function)
dcraw.c:1954: error: `j_common_ptr' undeclared (first use in this function)
dcraw.c:1954: error: `JPOOL_IMAGE' undeclared (first use in this function)
dcraw.c:1959: error: syntax error before ')' token
dcraw.c:1959: error: syntax error before ')' token
dcraw.c: In function `apply_profile':
dcraw.c:6746: error: `cmsHPROFILE' undeclared (first use in this function)
dcraw.c:6746: error: syntax error before "hInProfile"
dcraw.c:6747: error: `cmsHTRANSFORM' undeclared (first use in this function)
dcraw.c:6751: error: `LCMS_ERROR_SHOW' undeclared (first use in this function)
dcraw.c:6753: error: `hInProfile' undeclared (first use in this function)
dcraw.c:6765: error: `hOutProfile' undeclared (first use in this function)
dcraw.c:6782: error: `hTransform' undeclared (first use in this function)
dcraw.c:6782: error: `TYPE_RGBA_16' undeclared (first use in this function)
dcraw.c:6783: error: `INTENT_PERCEPTUAL' undeclared (first use in this function)

Сборка с параметрами
gcc -o dcraw -O4 dcraw.c -lm -DNO_JPEG -DNO_LCMS
прошла куда успешнее: всё собралось и в том же каталоге появился dcraw. После этого я скопировал его в /usr/bin от sudo и теперь в системе стоит последняя версия этого замечательного конвертора raw-формата.
Читать далее

Перевод документов из Word / OpenOffice.org в LaTeX



17 коммент.
Задача: чтобы перейти на прогрессивный ЛаТеХ с ЗлоВорда / другого форматированного текста, нужно перевести набранные там документы в формат LaTeX. Как это сделать в открытых системах?
Решение: есть несколько свободных утилит, позволяющих это делать.

Введение
Обычно теме перевода научных документов из неправильных форматов в ЛаТеХ уделяют не так много внимания - дескать, кто вкусил ЛаТеХа и пользуется им, у того нет неправильных документов. Но что делать, если вы решили переходить к использованию ЛаТеХа и не хочется снова перенабирать формулы? Есть несколько утилит для перевода документов в ЛаТеХ, в том числе и открытых. Ниже приводятся примеры конвертации документа с формулами и рисунками:



OpenOffice.org -> SXW -> writer2latex + Java = LaTeX
Вот такая хитрая цепочка, дающая очень приличный результат. Да, скрипты writer2latex встроены в ОпенОфис, начиная с версии 2.0.4, но работают они там пока как-то странно. Посему проще всего просто скачать эти утилиты, распаковать в домашнем каталоге (чтобы не править конфиг внутри скрипта) и дать права на исполнение.

Реализация
Для конвертации нужна Java (у меня работает с java 1.4), которую можно установить из репозитория. После этого открываем вордовый документ, сохраняем его в формат SXW в каталог writer2latex04. Теперь осталось зайти в этот каталог и набрать:
~/writer2latex04$ ./w2l имя_документа
На что вам ответят:
This is Writer2LaTeX, Version 0.4 (2005-07-01)

Starting conversion...
Done!
Всё, в каталоге появится такой же файл с расширением имя_документа.tex - его можно открыть, например, в Kile и скомпилировать.

Результат
Формулы набираются почти без нареканий, оформление передаётся прекрасно, и на рисунки вставляются ссылки. Проблему кодировок создатели этих скриптов обошли просто: кириллические символы набираются тэгами:
{\centering\selectlanguage{russian}\bfseries
{\textquotedbl}{\CYRC}{\cyri}{\cyrf}{\cyrr}{\cyro}{\cyrv}{\cyro}{\cyre}
{\cyrv}{\cyro}{\cyrs}{\cyrs}{\cyrt}{\cyra}{\cyrn}{\cyro}{\cyrv}{\cyrl}{\cyre}{\cyrn}{\cyri}{\cyre}
{\cyri}{\cyrz}{\cyro}{\cyrb}{\cyrr}{\cyra}{\cyrzh}{\cyre}{\cyrn}{\cyri}{\cyrishrt},
{\cyrz}{\cyra}{\cyrk}{\cyro}{\cyrd}{\cyri}{\cyrr}{\cyro}{\cyrv}{\cyra}{\cyrn}{\cyrn}{\cyrery}{\cyrh}
{\cyro}{\cyrp}{\cyrt}{\cyri}{\cyrch}{\cyre}{\cyrs}{\cyrk}{\cyri}{\cyrm}
{\cyrm}{\cyre}{\cyrt}{\cyro}{\cyrd}{\cyro}{\cyrm}{\textquotedbl}
\par}
Выглядит жутко, но при компиляции документа всё смотрится хорошо, что видно на рисунке:


В принципе, никто не мешает создать (или погуглить, наверняка кто-то уже написал) скрипт, который заменит тэги кириллицы на буквы в текущей кодировке. Во всяком случае, главное - формулы, сохранены и набраны очень хорошо.

Плюсы:
+ Прекрасный перевод формул, набранных в ЗлоВорде или ОпенОфисе в ЛаТеХ.
+ Отличное сохранение форматирования, таблиц, точных размеров (важно для титульных листов)
+ Одно из лучших свободных средств конвертирования в ЛаТеХ, наравне с лучшими проприетарными аналогами.

Минусы:
- Кириллица в тэгах, для редактирования текста придётся переконвертировать в текст текущей кодировки.


OpenOffice.org -> HTML -> gnuhtml2latex = LaTeX
Вариант проще и с несколько иной "заточкой", предназначенный прежде всего для перевода в ЛаТеХ форматированного текста. Утилита gnuhtml2latex входит в дистрибутив Дебиан и представляет собой перловый скрипт, который переводит форматирование HTML в ЛаТеХ 2е.

Реализация
Для работы этого скрипта Java не нужна, но нужен Perl - который должен быть в системе любого линуксоида. Скрипт имеет мало параметров
$ gnuhtml2latex имя_документа
В текущем каталоге появится теховский файл. Но качество перевода математических документов, конечно, ниже среднего: текст есть, не в тэгах, но формулы не набраны (даже рисунками), часть текста может быть в другой кодировке, код ужасен и требует напильника крупного калибра. Всё-таки, справедливости ради, скрипт писался не для того: прежде всего, целью программы был перевод форматированных документов в ЛаТеХ. С текстами типа блоггерских записей он справляется прекрасно, но математика, конечно, выше его сил.

Результат
Говоря кратко, для перевода математических документов gnuhtml2latex просто непригоден. Только форматированный текст, и то после этого код нуждается в напильнике.


Вот что осталось от математики: одни обломки.

Плюсы:
+ Хорошее сохранение форматирования, пригоден для текстов несложного оформления.

Минусы:
- Математические тексты не переводит, часть текста может запросто оказаться в другой кодировке.
- Выдаваемый код довольно жуткий, потребуется крупный напильник.


AbiWord -> LaTeX
Чуть не забыли старика-Абиворда, и очень зря. В былые годы это был чуть ли не единственный текстовый процессор, способный читать и конвертировать много форматов, в том числе ЗлоВорд. AbiWord имеет свои конвертеры для многих форматов, в том числе для злоВорда, ЛаТеХа и ОпенОфиса (в версии 2.2.7, что в Сарже) формата SXW. Так что при совсем безысходных случаях можно и АбиВорд использовать.

Реализация
Это графическое приложение, так что как тыкать по кнопкам, думаю, объяснять не надо. Просто открываем документ (SXW, HTML или даже вордовый), ищем в перечне типов файлов latex и сохраняем.

Результат
Мягко говоря, результат страшноват, но лучше того, что сделал с математикой gnuhtml2latex. AbiWord даже набрал греческие символы, но длинные формулы всё-таки запорол: во всяком случае, индексы он набирает отступами и точным позиционированием текста.


Результат не впечатляет, и по коду после этого придётся елозить напильником.

Плюсы:
+ Графическое приложение, кнопочки.
+ Вменяемо сохраняет форматирование и греческие буквы.

Минусы:
- Код страшен и "в лоб" не скомпилируется, требует применения напильника, паяльника и мощной кувалды.


catdoc -> LaTeX
Эта небольшая, но очень полезная утилита способна читать и декодировать форматы ЗлоВорда, вплоть до ЗлоВорда2000. Очень маленькая, но позволяет сохранять файл ворда либо в простом тексте, либо (с небольшими добавками) формат ЛаТеХ.

Реализация
После установки приложения apt-get install catdoc можно выполнять команду конвертации:
catdoc -t PredDiplomPractice.doc > PredDiplomPracticeCAT.tex
Утилита имеет несколько параметров, но всё-таки больше пригодна не для перевода в ЛаТеХ документов (так как математика в этом случае почти в полном объёме уходит лесом), а для включения в скрипты и анализа документов.


Результат
Только текст с некоторыми примесями тэгов ЛаТеХа. Почти нет форматирования, не говоря уже о формулах и рисунках. Только в крайнем случае при очень простых текстах.



Результат - только текст с небольшими вкраплениями формул.

Плюсы:
+ Маленькая и быстрая утилита.

Минусы:
- Всё остальное: нет формул, картинок, сносок и прочего. Только слегка отформатированный текст.


wv -> LaTeX
Группа утилит, которые по мере своих скромных сил справляются с засильем документов ЗлоВорда: с 6 до 200 версии включительно. Входит в Дебиан, тянет за собой tetex-base и ImageMagick. Утилит много

wvAbw wvDVI wvPDF wvText
wvCleanLatex wvHtml wvPS wvVersion
wvConvert wvLatex wvRTF wvWare
wvDocBook wvMime wvSummary wvWml

Реализация
После установки apt-get install wv выполняем команду конвертации:
wvLatex PredDiplomPractice.doc PredDiplomPracticeWV.tex
Утилита имеет несколько параметров, но всё-таки больше пригодна не для перевода в ЛаТеХ документов (так как математика в этом случае почти
в полном объёме уходит лесом), а для включения в скрипты и анализа
документов.


Результат
Только текст с некоторыми примесями тэгов ЛаТеХа. Почти нет форматирования, не говоря уже о формулах и рисунках. Только в крайнем случае при очень простых текстах.



Результат - только текст с небольшими вкраплениями формул.

Плюсы:
+ Маленькая и быстрая утилита.

Минусы:
- Всё остальное: мало формул, картинок, сносок и прочего. Только слегка отформатированный текст.


Заключение
При том количестве свободных утилит, которые способны переводить документы из закрытого, проприетарного и патентованного формата ЗлоВорд в формат LaTeX, конвертация осуществима и практически без потерь форматирования, формул и денег.
Читать далее

Внешнее подключение внутреннего винчестера



18 коммент.
Задача: скопировать данные с IDE-шного винчестера в походных условиях без возможности подключить его к другому компьютеру.
Решение: это позволяют сделать внешние кейсы.

Будучи вдохновлён постом gluek, я вспомнил о том, что у меня на работе стоит машина с умершей материнской платой и 250Гб винчестером на Ext3, на котором много фильмов. Подключение к местным подоконным машинам исключено: там почему-то начинаются глюки от втыкания ещё одного винчестера - запретили трогать машины под угрозой физической расправы. Побродив по Царицынскому радиорынку в Москве, я нашёл безродное китайское устройство, позволяющее проводить такие операции. На коробке было написано: поддерживается Зло 98/2000/ХП и МакОС с 8 и дальше. Ни слова о Линукс, конечно, дядюшка Ляо не написал. Будет ли оно работать?

Чудеса поднебесной
За продукцию с гордыми названиями типа Gembirde просили тысячу рублей и не меньше, и я отправился искать что-нибудь подешевле. И нашёл:



Надпись на коробке обещала, что лежащее внутри устройство будет читать винчестеры легко и просто, без драйверов, с высокой скоростью и сдувающей со стула производительностью (в переводе с китайского это значит USB2.0). За это чудо китайской промышленности попросили всего 500 рублей - то, что нужно. Принеся его домой и распаковав, я нашёл внутри вот что:



Сам блок, источник питания, полуметровый USB-шнур, ненужный диск с драйверами, крошечные винтики и совершенно очаровательную (и очень нужную!) крестовую отвёртку. Заглянув внутрь, я увидел на торчащие в глубине штекер для питания и кусок шлейфа. Тут я понял, что для подключения диска лицевую панель надобно снять, всё подключить и засунуть обратно (что вроде уже и лишнее). Совершенством сборки устройство, конечно, не блещет:



Внутри - маленькая схемка, несколько конденсаторов, на соплях (впрочем, добротных) припаянные выводы к переключателям, на меня смотрит один светодиод, вывод питания и USB-штекер... Ну да, а чего я, спрашивается, хотел за 500 рублей? Их эстетических соображений, вид лицевой панели приводить не буду :-)

Чудо в работе
Ну да ладно, китайскому коню в пайку не смотрят. Вскрыл один из своих домашних компьютеров, подключил винчестер к этой вершине инженерно-китайского искусства. Включил тумблер в положение "ВКЛ" - винчестер загудел и, пошуршав головками, обозначил свою готовность к работе. Втыкание USB-шнура привело к перемене цвета светодиода с зелёного на красный и слышимому снижению оборотов двигателя харда, но он быстро вышел на обычный режим. Воткнул в USB-порт ноутбука и напряжённо начал вглядываться в выводы dmesg свежесамосборного ядра 2.6.20 - и через некоторое время увидел вот что:

usb 1-5: new high speed USB device using ehci_hcd and address 6
usb 1-5: configuration #1 chosen from 1 choice
scsi1 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 6
usb-storage: waiting for device to settle before scanning
scsi 1:0:0:0: Direct-Access WDC WD12 00JB-00EVA0 15.0 PQ: 0 ANSI: 0
SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB)
sda: Write Protect is off
sda: Mode Sense: 03 00 00 00
sda: assuming drive cache: write through
sda1 sda2
sd 1:0:0:0: Attached scsi disk sda
sd 1:0:0:0: Attached scsi generic sg0 type 0
usb-storage: device scan complete

Есть контакт! Это мой 120Гб винчестер на резервной машине: на первой партиции ReiserFS с ситемой, на второй - Ext3, там архивы. Пробую монтировать, всё нормально:

kjournald starting. Commit interval 5 seconds
EXT3 FS on sda2, internal journal
EXT3-fs: mounted filesystem with ordered data mode.

Посмотрел на данные, прочитал оттуда один файл, записал - всё прекрасно. Теперь буду качать фильмы с рабочего компьютера - благо есть чем. К слову о скорости: очень даже порядочная, 20-30Мб/сек. Так что перегнать коллекцию фильмов стало быстрее и проще.

Заключение
Ещё раз убедился в справедливости слов Грега Кроа-Хартмана: "Линукс из коробки поддерживает больше устройств, чем любая другая ОС, которая когда-либо разрабатывалась прежде". Такие же устройства есть для дисков SATA и ноутбучных винчестеров.
Читать далее