SBC-FITPC2: Linux: Kernel
Contents
Overview
SBC-FITPC2 is fully x86 compatible PC. Recent Linux kernels support most of SBC-FITPC2 hardware features. Starting with Linux kernel 2.6.32 SBC-FITPC2 support is merged into the mainline.
Patches for Linux kernel earlier than 2.6.32
Reboot quirk
Proper reboot handling requires the following patch to arch/x86/kernel/reboot.c or arch/x86/kernel/reboot_32.c, depending on the kernel version.
.matches = { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq"), }, }, + { /* Handle problems with rebooting on CompuLab SBC-FITPC2 board */ + .callback = set_bios_reboot, + .ident = "CompuLab SBC-FITPC2", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "CompuLab"), + DMI_MATCH(DMI_PRODUCT_NAME, "SBC-FITPC2"), + }, + },
This patch will be included in mainline kernel tree staring from 2.6.31-rc5 |
Another option for proper reboot handling is add to kernel command line reboot=b option, that means "use BIOS reboot". No patch needed in this case.
Watchdog support
SBC-FITPC2 provides watchdog functionality. It is possible to enable watchdog timer either from BIOS (F2) or from the running Linux. SBC_FITPC2 watchdog has an operating range between 31 and 255 seconds. The range is defined by the "Watchdog Timer Value" in the BIOS or by margin parameter of the watchdog driver. Entering BIOS setup temporarily disables watchdog operation regardless of the current state, therefore the system will not be restarted during interactive BIOS session. Once watchdog has been enabled the system would be restarted every "Watchdog Timer Value" period, unless watchdog timer was reset or disabled by the software.
Apply sbc-fitpc2-wdt.patch to your kernel sources to use watchdog. This patch will be included in the mainline kernel tree in future versions.
Infrared support
SBC-FITPC2 utilizes IgorPlug-USB (AVR) Infrared Receiver that requires appropriate kernel driver for proper operation. Depending on the Linux distribution the Infrared Receiver drivers may be pre-installed, available as separate package or available as the source code. It is necessary to rebuild the Infrared Receiver drivers using lirc_igorplugusb.c file provided by CompuLab.
You may need to adjust #include "kcompat.h", #include "lirc.h" or #include "lirc_dev.h" lines depending on driver source files hierarchy in your distribution. |
Kernel configuration
Pay attention on the following kernel features if you need to configure kernel manually:
Processor type and features
- Disable Symmetric multi-processing support, this option conflicts with proper GMA500 graphic driver operation.
- Set Processor family to (586/K5/5x86/6x86/6x86MX).
- Enable Enable X86 board specific fixups for reboot.
.config - Linux Kernel v2.6.31 Configuration ──────────────────────────────────────────────────────────────────────────────────────────────── ┌─────────────────────────────── Processor type and features ───────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted letters are │ │ hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press │ │ <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] excluded │ │ <M> module < > module capable │ │ ┌───────────────────────────────────────────────────────────────────────────────────────┐ │ │ │ [*] Tickless System (Dynamic Ticks) │ │ │ │ [*] High Resolution Timer Support │ │ │ │ [ ] Symmetric multi-processing support │ │ │ │ [*] Support for extended (non-PC) x86 platforms │ │ │ │ [ ] AMD Elan │ │ │ │ [ ] RDC R-321x SoC │ │ │ │ [*] Single-depth WCHAN output │ │ │ │ [ ] Paravirtualized guest support ---> │ │ │ │ [ ] Memtest │ │ │ │ Processor family (586/K5/5x86/6x86/6x86MX) ---> │ │ │ │ [*] Generic x86 support │ │ │ │ [ ] PentiumPro memory ordering errata workaround │ │ │ │ [*] HPET Timer Support │ │ │ │ Preemption Model (Voluntary Kernel Preemption (Desktop)) ---> │ │ │ │ [ ] Local APIC support on uniprocessors (NEW) │ │ │ │ [*] Machine Check Exception │ │ │ │ < > Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4 (NEW) │ │ │ │ < > Toshiba Laptop support │ │ │ │ < > Dell laptop support │ │ │ │ [*] Enable X86 board specific fixups for reboot │ │ │ └────────v(+)───────────────────────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └───────────────────────────────────────────────────────────────────────────────────────────┘
Intel SCH PATA support
.config - Linux Kernel v2.6.31 Configuration ──────────────────────────────────────────────────────────────────────────────────────────────── ┌──────────────── Serial ATA (prod) and Parallel ATA (experimental) drivers ────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted letters are │ │ hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes features. Press │ │ <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] built-in [ ] excluded │ │ <M> module < > module capable │ │ ┌────────^(-)───────────────────────────────────────────────────────────────────────────┐ │ │ │ < > Promise PATA 2027x support │ │ │ │ < > CMD / Silicon Image 680 PATA support │ │ │ │ < > SiS PATA support │ │ │ │ < > VIA PATA support │ │ │ │ < > Winbond SL82C105 PATA support │ │ │ │ <*> Intel SCH PATA support │ │ │ └───────────────────────────────────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └───────────────────────────────────────────────────────────────────────────────────────────┘
Network device support
.config - Linux Kernel v2.6.31 Configuration ──────────────────────────────────────────────────────────────────────────────────────── ┌────────────────────────────── Ethernet (1000 Mbit) ───────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted │ │ letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌────^(-)───────────────────────────────────────────────────────────────────────┐ │ │ │ < > National Semiconductor DP83820 support │ │ │ │ < > Packet Engines Hamachi GNIC-II support │ │ │ │ < > Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL) │ │ │ │ <M> Realtek 8169 gigabit ethernet support │ │ │ │ < > SiS190/SiS191 gigabit ethernet support │ │ │ └────v(+)───────────────────────────────────────────────────────────────────────┘ │ ├───────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └───────────────────────────────────────────────────────────────────────────────────┘
.config - Linux Kernel v2.6.31 Configuration ───────────────────────────────────────────────────────────────────────────────────────── ┌───────────────────────────────── Staging drivers ──────────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted │ │ letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌─────^(-)───────────────────────────────────────────────────────────────────────┐ │ │ │ < > Ralink 2860 wireless support │ │ │ │ < > Ralink 2870 wireless support │ │ │ │ <M> Ralink 3070 wireless support │ │ │ │ < > Data acquisition support (comedi) │ │ │ │ < > Asus OLED driver │ │ │ │ < > Altera PCI Express Chaining DMA driver │ │ │ │ < > RealTek RTL8187SE Wireless LAN NIC driver │ │ │ │ < > Mimio Xi interactive whiteboard support │ │ │ │ < > Frontier Tranzport and Alphatrack support │ │ │ └─────v(+)───────────────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └────────────────────────────────────────────────────────────────────────────────────┘
MMC/SD/SDIO card support
.config - Linux Kernel v2.6.31 Configuration ───────────────────────────────────────────────────────────────────────────────────────── ┌───────────────────────────── MMC/SD/SDIO card support ─────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted │ │ letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌────────────────────────────────────────────────────────────────────────────────┐ │ │ │ --- MMC/SD/SDIO card support │ │ │ │ [ ] MMC debugging │ │ │ │ [ ] Allow unsafe resume (DANGEROUS) │ │ │ │ *** MMC/SD/SDIO Card Drivers *** │ │ │ │ <M> MMC block device driver │ │ │ │ [*] Use bounce buffer for simple hosts │ │ │ │ < > SDIO UART/GPS class support │ │ │ │ < > MMC host test driver │ │ │ │ *** MMC/SD/SDIO Host Controller Drivers *** │ │ │ │ <M> Secure Digital Host Controller Interface support │ │ │ │ < > SDHCI support on PCI bus │ │ │ │ < > Winbond W83L51xD SD/MMC Card Interface support │ │ │ │ < > TI Flash Media MMC/SD Interface support (EXPERIMENTAL) │ │ │ └────────────────────────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └────────────────────────────────────────────────────────────────────────────────────┘
I2C/SMBus support
.config - Linux Kernel v2.6.31 Configuration ───────────────────────────────────────────────────────────────────────────────────────── ┌───────────────────────────── I2C Hardware Bus support ─────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted │ │ letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌────────────────────────────────────────────────────────────────────────────────┐ │ │ │ *** PC SMBus host controller drivers *** │ │ │ │ < > ALI 1535 │ │ │ │ < > ALI 1563 │ │ │ │ < > ALI 15x3 │ │ │ │ < > AMD 756/766/768/8111 and nVidia nForce │ │ │ │ < > AMD 8111 │ │ │ │ < > Intel 82801 (ICH) │ │ │ │ <M> Intel SCH SMBus 1.0 │ │ │ │ < > Intel PIIX4 and compatible (ATI/Serverworks/Broadcom/SMSC) │ │ │ └─────v(+)───────────────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └────────────────────────────────────────────────────────────────────────────────────┘
Watchdog Timer Support
.config - Linux Kernel v2.6.31 Configuration ───────────────────────────────────────────────────────────────────────────────────────── ┌────────────────────────────── Watchdog Timer Support ──────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted │ │ letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌─────^(-)───────────────────────────────────────────────────────────────────────┐ │ │ │ < > Advantech SBC Watchdog Timer │ │ │ │ < > ALi M1535 PMU Watchdog Timer │ │ │ │ < > ALi M7101 PMU Computer Watchdog │ │ │ │ < > AMD Elan SC520 processor Watchdog │ │ │ │ <M> Compulab SBC-FITPC2 watchdog │ │ │ │ < > Eurotech CPU-1220/1410 Watchdog Timer │ │ │ │ < > IB700 SBC Watchdog Timer │ │ │ │ < > IBM Automatic Server Restart │ │ │ │ < > ICP Single Board Computer Watchdog Timer │ │ │ └─────v(+)───────────────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └────────────────────────────────────────────────────────────────────────────────────┘
Sound card support
.config - Linux Kernel v2.6.31 Configuration ───────────────────────────────────────────────────────────────────────────────────────── ┌────────────────────────────────── Intel HD Audio ──────────────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. Highlighted │ │ letters are hotkeys. Pressing <Y> includes, <N> excludes, <M> modularizes │ │ features. Press <Esc><Esc> to exit, <?> for Help, </> for Search. Legend: [*] │ │ built-in [ ] excluded <M> module < > module capable │ │ ┌────────────────────────────────────────────────────────────────────────────────┐ │ │ │ --- Intel HD Audio │ │ │ │ [*] Build hwdep interface for HD-audio driver │ │ │ │ [ ] Allow dynamic codec reconfiguration (EXPERIMENTAL) │ │ │ │ [ ] Support digital beep via input layer │ │ │ │ [*] Support jack plugging notification via input layer │ │ │ │ [*] Build Realtek HD-audio codec support │ │ │ │ [ ] Build Analog Device HD-audio codec support │ │ │ │ [ ] Build IDT/Sigmatel HD-audio codec support │ │ │ │ [ ] Build VIA HD-audio codec support │ │ │ └─────v(+)───────────────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └────────────────────────────────────────────────────────────────────────────────────┘
Working Examples
- Ubuntu 8.04 LTS verified and tested on fit-PC2 (SBC-FITPC2 with enclosure and harddisk). Installation instructions described here: Ubuntu_8.04_LTS_on_SBC-FITPC2