Difference between revisions of "CM-iTC: Linux: Kernel"

From Compulab Mediawiki
Jump to: navigation, search
(Development)
 
(2 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
The CM-iTC is a fully-compatible x86 PC. Recent Linux kernels support most CM-iTC hardware features. CompuLab provides [http://compulab.co.il/workspace/sw/itc/maverick/source/linux_2.6.38.orig.tar.gz 2.6.38] kernel and customized [http://compulab.co.il/workspace/sw/itc/maverick/source/linux_2.6.38-34.1.diff.gz patch] to it. The configuration file is {{filename|debian/config/i386/config.itc}} in the kernel sources tree.
+
The current release is based on a generic Ubuntu kernel 3.2.0 with a few modifications made by CompuLab.
 +
The package include the following:
 +
* linux_3.2.0.orig.tar.gz - mainline Linux 3.2.0 sources
 +
* linux_3.2.0-38.61.diff - Ubuntu patch
 +
* compulab.cm-itc.diff - CompuLab patch
 +
* config-3.2.37-compulab.cm-itc - CompuLab config file
 +
* Resulting .deb files also included
  
The most significant features of interest to kernel developers are described below.
+
== Development ==
 
+
You can change the kernel and compile your own .deb files:
== CAN Bus ==
+
: {{Note|Compile on a 32-bit machine or setup a 32-bit compilation environment on a 64-bit machine}}
.config - Linux/i386 2.6.38-34-itc Kernel Configuration
+
* Install the programs and tools required for kernel building
────────────────────────────────────────────────────────────────────────────────────────
+
<pre>
  ┌─────────────────────────────── CAN Device Drivers ────────────────────────────────┐
+
$ sudo apt-get install libncurses5 libncurses5-dev kernel-package
  │  Arrow keys navigate the menu. <Enter> selects submenus --->.  Highlighted      │ 
+
</pre>
  │  letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes      │ 
+
* Prepare sources, apply patches and setup config file
  │  features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*]  │ 
+
<pre>
  │  built-in  [ ] excluded  <M> module  < > module capable                          │ 
+
$ cd /path/to/itc-linux/kernel/linux-3.2
  │ ┌───────────────────────────────────────────────────────────────────────────────┐ │ 
+
$ patch -p1 < ../patches/linux_3.2.0-38.61.diff
  │ │    < > Virtual Local CAN Interface (vcan)                                    │ │ 
+
$ patch -p1 < ../patches/compulab.cm-itc.diff
  │ │    < > Serial / USB serial CAN Adaptors (slcan)                              │ │ 
+
$ cp ../config-3.2.37-compulab.cm-itc .config
  │ │    <M> Platform CAN drivers with Netlink support                              │ │ 
+
</pre>
  │ │    [*]  CAN bit-timing calculation                                          │ │ 
+
* Make your modifications and configure the new kernel
  │ │    < >  Microchip MCP251x SPI CAN controllers                                │ │ 
+
<pre>
  │ │    <M> PCH CAN                                                                │ │ 
+
$ make menuconfig
  │ │    < > Philips/NXP SJA1000 devices  --->                                      │ │ 
+
optional: change CONFIG_LOCALVERSION="-compulab.cm-itc" to "-yourname.cm-itc"
  │ │        CAN USB interfaces  --->                                              │ │ 
+
</pre>
  │ │    [ ] CAN devices debugging messages                                        │ │ 
+
* If you have a more than one processor or more than one core, you can speed things up by running concurrent compile commands. Setup CONCURRENCY_LEVEL=8 for 8 cores
  │ │                                                                              │ │ 
+
<pre>
  │ └───────────────────────────────────────────────────────────────────────────────┘ │ 
+
$ export CONCURRENCY_LEVEL=8
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
+
</pre>
  │                        <Select>    < Exit >    < Help >                          │ 
+
* Compile the kernel and create the .deb packages
  └───────────────────────────────────────────────────────────────────────────────────┘
+
<pre>
 
+
$ fakeroot make-kpkg --initrd --revision=10.00 kernel_image kernel_headers
== Network device ==
+
optional: change revision=10.00 to another custom string, it will appear as part of the .deb file
.config - Linux/i386 2.6.38-34-itc Kernel Configuration
+
</pre>
────────────────────────────────────────────────────────────────────────────────────────
+
* The linux-image-*.deb and linux-headers-*.deb packages are created in the parent directory
  ┌────────────────────────────── Ethernet (1000 Mbit) ───────────────────────────────┐
+
* Install new .deb packages on the CM-iTC
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.  Highlighted      │ 
+
<pre>
  │  letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes      │ 
+
sudo dpkg -i linux-*.deb
  │  features.  Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*]  │ 
+
</pre>
  │  built-in  [ ] excluded  <M> module  < > module capable                          │ 
 
  │ ┌────^(-)───────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    < >  IP1000 Gigabit Ethernet support                                      │ │ 
 
  │ │    < >  Intel(R) 82575/82576 PCI-Express Gigabit Ethernet support            │ │ 
 
  │ │    < >  Intel(R) 82576 Virtual Function Ethernet support                    │ │ 
 
  │ │    < >  National Semiconductor DP83820 support                              │ │ 
 
  │ │    < >  Packet Engines Hamachi GNIC-II support                              │ │ 
 
  │ │    < >  Packet Engines Yellowfin Gigabit-NIC support (EXPERIMENTAL)          │ │ 
 
  │ │    <M>  Realtek 8169 gigabit ethernet support                                │ │ 
 
  │ │    [*]    VLAN support                                                      │ │ 
 
  │ │    < >  SiS190/SiS191 gigabit ethernet support                              │ │ 
 
  │ │    < >  New SysKonnect GigaEthernet support                                  │ │ 
 
  │ └────v(+)───────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘ 
 
 
 
.config - Linux/i386 2.6.38-34-itc Kernel Configuration
 
────────────────────────────────────────────────────────────────────────────────────────
 
  ┌────────────────────── PHY Device support and infrastructure ──────────────────────┐
 
  │  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                          │ 
 
  │ ┌────^(-)───────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    < >  Drivers for SMSC PHYs                                                │ │ 
 
  │ │    < >  Drivers for Broadcom PHYs                                            │ │ 
 
  │ │    < >  Drivers for Broadcom 63xx SOCs internal PHY                          │ │ 
 
  │ │    < >  Drivers for ICPlus PHYs                                              │ │ 
 
  │ │    <M>  Drivers for Realtek PHYs                                            │ │ 
 
  │ │    < >  Drivers for National Semiconductor PHYs                              │ │ 
 
  │ │    < >  Driver for STMicroelectronics STe10Xp PHYs                          │ │ 
 
  │ │    < >  Driver for LSI ET1011C PHY                                          │ │ 
 
  │ │    < >  Driver for Micrel PHYs                                              │ │ 
 
  │ │    < >  Support for bitbanged MDIO buses                                    │ │ 
 
  │ └───────────────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘ 
 
 
 
== I2C Hardware Bus ==
 
.config - Linux/i386 2.6.38-34-itc Kernel 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                          │ 
 
  │ ┌────^(-)───────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    < > VIA VT82C596/82C686/82xx and CX700/VX8xx                              │ │ 
 
  │ │        *** ACPI drivers ***                                                  │ │ 
 
  │ │    <M> SMBus Control Method Interface                                        │ │ 
 
  │ │        *** I2C system bus drivers (mostly embedded / system-on-chip) ***      │ │ 
 
  │ │    < > GPIO-based bitbanging I2C                                              │ │ 
 
  │ │    < > Intel Moorestown/Medfield Platform I2C controller                      │ │ 
 
  │ │    < > OpenCores I2C Controller                                              │ │ 
 
  │ │    < > PCA9564/PCA9665 as platform device                                    │ │ 
 
  │ │    < > Simtec Generic I2C interface                                          │ │ 
 
  │ │    < > Xilinx I2C Controller                                                  │ │ 
 
  │ │    <M> PCH I2C of Intel EG20T                                                │ │ 
 
  │ └────v(+)───────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘
 
 
 
== SPI Bus ==
 
.config - Linux/i386 2.6.38-34-itc Kernel Configuration
 
────────────────────────────────────────────────────────────────────────────────────────
 
  ┌─────────────────────────────────── SPI 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                          │ 
 
  │ ┌───────────────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    --- SPI support                                                            │ │ 
 
  │ │    [ ]  Debug support for SPI drivers                                        │ │ 
 
  │ │          *** SPI Master Controller Drivers ***                                │ │ 
 
  │ │    < >  Utilities for Bitbanging SPI masters                                │ │ 
 
  │ │    < >  Parallel port adapter for AVR Butterfly (DEVELOPMENT)                │ │ 
 
  │ │    < >  GPIO-based bitbanging SPI Master                                    │ │ 
 
  │ │    < >  Parallel port adapter for LM70 eval board (DEVELOPMENT)              │ │ 
 
  │ │    < >  PXA2xx SSP SPI master                                                │ │ 
 
  │ │    <*>  Topcliff PCH SPI Controller                                          │ │ 
 
  │ │    < >  Xilinx SPI controller common module                                  │ │ 
 
  │ │    < >  DesignWare SPI controller core support                              │ │ 
 
  │ └────v(+)───────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘
 
 
 
== Intel® Embedded Media and Graphics ==
 
Intel® Embedded Media and Graphics Driver (EMGD) requires a kernel drm module for proper functionality. Sources are available at [http://edc.intel.com/Software/Downloads/emgd/ Intel® Embedded Media and Graphics Driver]. These drivers are not present in official Linux sources.
 
.config - Linux/i386 2.6.38-34-itc Kernel Configuration
 
────────────────────────────────────────────────────────────────────────────────────────
 
  ┌───────── Direct Rendering Manager (XFree86 4.1.0 and higher DRI 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                          │ 
 
  │ ┌───────────────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    --- Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)        │ │ 
 
  │ │    < >   3dfx Banshee/Voodoo3+                                                │ │ 
 
  │ │    < >  ATI Rage 128                                                        │ │ 
 
  │ │    < >  ATI Radeon                                                          │ │ 
 
  │ │    < >  Intel I810                                                          │ │ 
 
  │ │    < >  Intel 830M, 845G, 852GM, 855GM, 865G                                │ │ 
 
  │ │    < >  Matrox g200/g400                                                    │ │ 
 
  │ │    < >  SiS video cards                                                      │ │ 
 
  │ │    < >  Via unichrome video cards                                            │ │ 
 
  │ │    < >  Savage video cards                                                  │ │ 
 
  │ │    <M>  Intel IVI EMGD Kernel Module Driver                                  │ │ 
 
  │ └───────────────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘
 
 
 
== Intel HD Audio ==
 
.config - Linux/i386 2.6.38-34-itc Kernel 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                          │ 
 
  │ ┌────^(-)───────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    -*-  Build hwdep interface for HD-audio driver                            │ │ 
 
  │ │    -*-    Allow dynamic codec reconfiguration (EXPERIMENTAL)                │ │ 
 
  │ │    [*]  Support digital beep via input layer                                │ │ 
 
  │ │    (1)    Digital beep registration mode (0=off, 1=on, 2=mute sw on/off)    │ │ 
 
  │ │    [*]  Support jack plugging notification via input layer                  │ │ 
 
  │ │    [*]  Support initialization patch loading for HD-audio                    │ │ 
 
  │ │    [*]  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                                    │ │ 
 
  │ │    [ ]  Build HDMI/DisplayPort HD-audio codec support                        │ │ 
 
  │ │    [ ]  Build Cirrus Logic codec support                                    │ │ 
 
  │ │    [ ]  Build Conexant HD-audio codec support                                │ │ 
 
  │ │    [ ]  Build Creative CA0110-IBG codec support                              │ │ 
 
  │ │    [ ]  Build C-Media HD-audio codec support                                │ │ 
 
  │ │    [ ]  Build Silicon Labs 3054 HD-modem codec support                      │ │ 
 
  │ │    [*]  Enable generic HD-audio codec parser                                │ │ 
 
  │ │    [*]  Aggressive power-saving on HD-audio                                  │ │ 
 
  │ │    (0)    Default time-out for HD-audio power-save mode                      │ │ 
 
  │ └───────────────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>   < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘
 
 
 
== MMC/SD/SDIO card support ==
 
.config - Linux/i386 2.6.38-34-itc Kernel 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 host test driver                                                │ │ 
 
  │ │          *** MMC/SD/SDIO Host Controller Drivers ***                          │ │ 
 
  │ │    <*>   Secure Digital Host Controller Interface support                    │ │ 
 
  │ │    <*>  SDHCI support on PCI bus                                            │ │ 
 
  │ │    [ ]    Ricoh MMC Controller Disabler  (EXPERIMENTAL)                      │ │ 
 
  │ │    < >  SDHCI support on the platform specific bus                          │ │ 
 
  │ │    < >  Winbond W83L51xD SD/MMC Card Interface support                      │ │ 
 
  │ │    < >  TI Flash Media MMC/SD Interface support  (EXPERIMENTAL)              │ │ 
 
  │ │    < >  ENE CB710 MMC/SD Interface support                                  │ │ 
 
  │ │    < >  VIA SD/MMC Card Reader Driver                                        │ │ 
 
  │ │    < >  USB SD Host Controller (USHC) support                                │ │ 
 
  │ └───────────────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘
 
 
 
== Serial driver ==
 
.config - Linux/i386 2.6.38-34-itc Kernel Configuration
 
────────────────────────────────────────────────────────────────────────────────────────
 
  ┌───────────────────────────────── Serial 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                          │ 
 
  │ ┌────^(-)───────────────────────────────────────────────────────────────────────┐ │ 
 
  │ │    [*]  Support RSA serial ports                                            │ │ 
 
  │ │        *** Non-8250 serial port support ***                                  │ │ 
 
  │ │    < > MAX3100 support                                                        │ │ 
 
  │ │    < > MAX3107 support                                                        │ │ 
 
  │ │    < > Medfield High Speed UART support                                      │ │ 
 
  │ │    < > Digi International NEO PCI Support                                    │ │ 
 
  │ │    < > Support for timberdale UART                                            │ │ 
 
  │ │    < > Altera JTAG UART support                                              │ │ 
 
  │ │    < > Altera UART support                                                    │ │ 
 
  │ │    < > SPI protocol driver for Infineon 6x60 modem (EXPERIMENTAL)            │ │ 
 
  │ │    <M> Intel EG20T PCH UART                                                  │ │ 
 
  │ └───────────────────────────────────────────────────────────────────────────────┘ │ 
 
  ├───────────────────────────────────────────────────────────────────────────────────┤ 
 
  │                        <Select>    < Exit >    < Help >                          │ 
 
  └───────────────────────────────────────────────────────────────────────────────────┘
 
  
 
== See also ==
 
== See also ==
 +
* [[CM-iTC: Linux: Getting started|Getting started with Linux on CM-iTC]]
 +
* [[CM-iTC: Linux: Mint|Linux Mint for CM-iTC]]
  
* [[Getting started with Linux on CM-iTC]]
 
* [[Linux Mint for CM-iTC]]
 
  
[[Category:Linux]]
+
[[Category:Linux |Kernel]]
[[Category:CM-iTC]]
+
[[Category:CM-iTC |Linux: Kernel]]

Latest revision as of 14:05, 18 March 2013

Overview

The current release is based on a generic Ubuntu kernel 3.2.0 with a few modifications made by CompuLab. The package include the following:

  • linux_3.2.0.orig.tar.gz - mainline Linux 3.2.0 sources
  • linux_3.2.0-38.61.diff - Ubuntu patch
  • compulab.cm-itc.diff - CompuLab patch
  • config-3.2.37-compulab.cm-itc - CompuLab config file
  • Resulting .deb files also included

Development

You can change the kernel and compile your own .deb files:

Admolition note.png Compile on a 32-bit machine or setup a 32-bit compilation environment on a 64-bit machine
  • Install the programs and tools required for kernel building
$ sudo apt-get install libncurses5 libncurses5-dev kernel-package
  • Prepare sources, apply patches and setup config file
$ cd /path/to/itc-linux/kernel/linux-3.2
$ patch -p1 < ../patches/linux_3.2.0-38.61.diff
$ patch -p1 < ../patches/compulab.cm-itc.diff
$ cp ../config-3.2.37-compulab.cm-itc .config
  • Make your modifications and configure the new kernel
$ make menuconfig
optional: change CONFIG_LOCALVERSION="-compulab.cm-itc" to "-yourname.cm-itc"
  • If you have a more than one processor or more than one core, you can speed things up by running concurrent compile commands. Setup CONCURRENCY_LEVEL=8 for 8 cores
$ export CONCURRENCY_LEVEL=8
  • Compile the kernel and create the .deb packages
$ fakeroot make-kpkg --initrd --revision=10.00 kernel_image kernel_headers
optional: change revision=10.00 to another custom string, it will appear as part of the .deb file
  • The linux-image-*.deb and linux-headers-*.deb packages are created in the parent directory
  • Install new .deb packages on the CM-iTC
sudo dpkg -i linux-*.deb

See also