Preview only show first 10 pages with watermark. For full document please download

Kontron Linux For M2m Fri2 R01.01

   EMBED


Share

Transcript

Kontron Global Software Center Kontron Linux for M2M FRI2 R01.01 Page: 1/13 Revision: 1.01 Kontron Global Software Center 1. Revision history Revision 0.01 0.02 1.00 1.01 Page: 2/13 Date 01/06/2012 12/10/2012 28/12/2012 04/03/2013 Author Viktor Krasnov Viktor Krasnov Viktor Krasnov Viktor Krasnov Description Release notes for R00.01 Release notes for R00.02 Release notes for R01.00 Release notes for R01.01 Revision: 1.01 Kontron Global Software Center 2. Table of contents 1. Revision history...........................................................................................................................2 2. Table of contents..........................................................................................................................3 3. Introduction..................................................................................................................................4 4. Supported features.......................................................................................................................4 5. Unsupported features...................................................................................................................5 6. Delivery components...................................................................................................................5 7. Installation and set up procedures................................................................................................6 7.1 Writing installation image to USB flash/disk...................................................................6 7.2 Installation of the Kontron Linux to persistent storage....................................................7 8. Known issues and limitations......................................................................................................8 9. Changelog..................................................................................................................................12 Page: 3/13 Revision: 1.01 Kontron Global Software Center 3. Introduction This document describes Kontron Linux for M2M FRI2 board(FRI2 XT is also supported). It provides: − a summary of features; − installation notes; − listing of the release package contents. 4. Supported features 1. Hardware: − Intel ATOM E6xx(45nm) processor; − Intel Platform Controller Hub EG20/EG20T; − Intel High Definition Audio; − Intel GMA 600; − Internal Ethernet Controller with Broadcom BCM54610 PHY; − USB 2.0(EHCI/OHCI); − USB Client; − ACPI, Watchdog, SMBus, I2C, HW monitor; − ST LIS331DLHTR accelerometer; − PCA9555BS IO expanders; − Ericsson F5521gw and Telit HE910 GSM modems(Note: Cinterion EHS5 is also supported but requires manual configuration as Network Manager fails); − Intel Centrino Advanced-N 6205 and 6235 WiFi modules; − SD Host controller; − RTC; − PCI Express. 2. Software features: − VLAN; − IPv4/IPv6; − Fast Linux restart; − SELinux; − Access control list; − Packet filtering; − Pluggable authentication modules; − System logging; − System/hardware diagnostics; − Deployment software; − System recovery from USB stick; − Boot cycle detection; − Grsecurity PaX and chroot restrictions; − Precise process microstate accounting; − Remote system update. 3. Software features which require manual configuration: − 802.1X; − Network time protocol; − Application heartbeat monitor; − NAT; − IPsec and Internet key exchange; − Host-based intrusion detection; − Profiling; Page: 4/13 Revision: 1.01 − − − − − − Kontron Global Software Center Log analysis; Grsecurity RBAC; Remote system management; Kernel debugging; System Initialization Error Handling Enhancements; Crash analysis. 5. Unsupported features − − − − − − − TI CC2351 ZigBee controller; Serial ports; TPM; Precision time protocol; Trusted boot chain; McAfee whitelisting; Also see chapter “8. Known issues and limitations”. 6. Delivery components File name in delivery Kontron_Linux_M2M_FRI2_R01.01.img* README.txt win32diskimager-binary.zip Kontron_Linux_RPMs_M2M_FRI2_R01.01.zip keapi_docs.zip Page: 5/13 Description Installation image for Kontron Linux with md5sum Installation instructions in raw text format Utilities to make a bootable USB flash from installation image on Windows host Binary packages that were used for ISO creation KEAPI User's Guide and software specification Revision: 1.01 Kontron Global Software Center 7. Installation and set up procedures The Kontron Linux distribution is an installation image, which can be written to a USB stick and then used as a boot media. It is then possible to install it to Hard Drive/microSD Flash/other persistent storage. 7.1 Writing installation image to USB flash/disk To install Kontron Linux installation image on USB stick, please follow the instructions below. On Linux host − Insert the USB stick(4GB or more) into the host and determine a device node for connected storage by analyzing system logs (e.g. by executing: dmesg | tail | grep "\ [sd\]*"). − Write the supplied image to USB stick (this operation requires root privileges): # dd if=PATH_TO_IMAGE of=USB_DEVICE bs=4M, where USB_DEVICE was determined in the previous step. ( Note: all information on USB stick will be erased!) Example: # dmesg | tail | grep "\[sd\]*" sd 93:0:0:0: [sdd] 15950592 512-byte logical blocks: (8.16 GB/7.60 GiB) sd 93:0:0:0: [sdd] Write Protect is off sd 93:0:0:0: [sdd] Mode Sense: 43 00 00 00 sd 93:0:0:0: [sdd] Assuming drive cache: write through sd 93:0:0:0: [sdd] Attached SCSI removable disk # dd if=Kontron_Linux_M2M_FRI2_R01.01.img of=/dev/sdd bs=4M 600+1 records in 600+1 records out 2520000000 bytes (2.5 GB) copied, 604.587 s, 4.2 MB/s On Windows host − Download and unpack Image Writer for Windows from https://launchpad.net/win32image-writer/0.6/0.6/+download/win32diskimager-binary.zip (it's also provided with the installation image). − Insert the USB stick(4GB or more) into the host and determine the corresponding drive label by analyzing available storage devices in Windows Explorer. − Launch Win32DiskImager.exe from the unpacked archive, then specify the installation image and previously determined device label, press the Write button and confirm overwriting (Note: all information on USB stick will be erased!): Page: 6/13 Revision: 1.01 Kontron Global Software Center 7.2 Installation of the Kontron Linux to persistent storage It is possible to install Kontron Linux to persistent storage (USB HDD, microSD Flash or another USB stick) using either automatic or manual mode of installation. In order to install Kontron Linux, proceed with the following steps: Automatic mode − Insert a clean microSD card into M2M FRI2. This card should have 4GB of free space for installation to succeed. Note: Automatic mode does not support installation on another types of persistent storage (HDD and USB stick). − Then boot M2M FRI2 from previously prepared USB stick with Kontron Linux installation image(you may need to change a boot device order in BIOS). − Choose the 'Auto-installation with media repartitioning' item in the bootloader menu and press Enter. Or you can wait for 180 seconds – installation will start automatically. − Wait until the installation finishes(it may take a long time since installer automatically formats the microSD card and installs a basic set of RPM packages on it, but you can watch the progress on the screen ). When target reboots, disconnect the USB stick (otherwise the automatic installation will start again after 180 seconds) or select the “Boot from local drive” item in the bootloader menu (you may also need to change a boot device order in BIOS). − Wait unit the system starts and configuration menu appears. Then follow to instructions on the screen. − When the system finally boots up, you can use root account with kontron_m2m password to login. Notes: − A bootloader in Kontron installation image is configured to run 'Auto-installation' by default(in case when user does not select another item in 180 seconds). And this mode will automatically(without any warnings) format microSD card, so all information on it will be lost. Thus, be very careful when booting with connected USB stick which contains installation image – otherwise all information on microSD card may be lost. − But this USB stick can be used as recovery media – simply connect it to M2M FRI2 and reboot. Then wait until the reinstallation finishes. Manual mode − Connect a storage drive (USB HDD, microSD Flash or another USB stick) to M2M FRI2. Note: Installation of the basic set of system components will require about 4GB of free space on the connected storage. − Then boot M2M FRI2 from previously prepared USB stick with Kontron Linux installation image (you may need to change a boot device order in BIOS). − Choose the 'Manually install a new system' item in the bootloader menu and press Enter. If you do not perform this action in 180 seconds, the installation in automatic mode will start. − Install Kontron Linux following on-screen instructions. For full details, please refer to http://docs.fedoraproject.org/en-US/Fedora/14/html/Installation_Guide/. When target reboots, disconnect the USB stick( otherwise the automatic installation will start again after 180 seconds) or select the “Boot from local drive” item in the bootloader menu (you may also need to change a boot device order in BIOS). Note: some packages are not available for manual install (OpenOffice, Thunderbird, KDE, Eclipse, Evolution etc), but can be added per request. Page: 7/13 Revision: 1.01 Kontron Global Software Center 8. Known issues and limitations 1. The following hardware/firmware features have not been validated yet: − VAAPI; − EFI boot. 2. Sometimes system hangs during booting: − In case when a root partition cannot be mounted, the problem can be worked around by disconnecting all USB devices(especially HDDs and Hubs) from M2M and performing a cold reboot(with unplugging a power cable). USB devices can be connected again only when kernel is successfully loaded. − In case when a kernel crashes on latest stages of booting, the problem can be worked around by performing a cold reboot. 3. Ethernet: − A network connection can't be established after disabling autonegotiation. It can be worked around by manual bringing up the corresponding network interface before turning off the autonegotiation. − Sometimes after changing current mode with ethtool, it fails with the following error: “Cannot set new settings: Cannot allocate memory”. Herewith kernel crashes with the “ethtool: page allocation failure: order:10, mode:0x80d0” message and Ethernet controller stops working until reboot. The problem is very hard to reproduce and, so far, has not been investigated. − Low network speed for 600MHz M2M module: − 140-170Mbits/s (both for TCP and UDP) when network packets are generated on M2M FRI2. − 530Mbits/s for TCP and 150Mbits/s for UDP when network packets are generated on host. Also for UDP protocol there was a lot of lost datagrams – about 85%. This problem is caused by low CPU performance and by general(not optimized) kernel configuration – for example the output speed can be significantly increased by disabling/unloading the ip_conntrack_ipv4 driver. − For “10 half” and “10 full” modes, there is a lot of lost datagrams when network packets are generated on M2M FRI2. The problem has not been investigated yet, but losses can be reduced to acceptable levels(3.3%) by cutting down the UDP bandwidth at which packets are sent. − In “100 half” mode, the network speed is too low when network packets are generated on M2M FRI2: 40Mbits/s for TCP and only 2Mbits/s for UDP. The problem is caused by “pch_gbe: Transfer Carrier Sense Error” error message that occurs twenty times per second, so the rsyslogd daemon consumes much more CPU time than the iperf process. After disabling the rsyslogd daemon, the performance became normal. But the cause of these error messages have not been investigated yet. 4. USB client: − Sometimes system hangs when a g_serial driver is loaded immediately after unloading of the g_file_storage driver. The problem has not been investigated yet. − The device is not properly disconnected on module unload. As a result the host assumes that USB device is available when it is actually deconfigured. Loading the driver again does not cause device reconfiguring. So, the host is trying to talk to a non-existing device, while the device is waiting to be configured. USB device presence is indicated to the host by pulling up the D+ signal line. The pull-up is supposed to be controlled by bit 10 (Soft Disconnect) in the Device Control Register. To signal disconnect the driver sets the bit. However, looks like the pull-up is stuck: it does not change until the USB cable is disconnected. Reconnection of cable and reloading the pch_usb driver resolve the issue - the driver performs USB controller reset during initialization. It appears that resetting PHY before or after setting the Soft Disconnect bit is sufficient for signaling USB disconnect. Page: 8/13 Revision: 1.01 Kontron Global Software Center 5. SD controller: − Only microSD cards class 4 can be used with external microSD slot: if a microSD card class 6 or class 10 is inserted into it, the following error occurs: “mmcblk0: error -84 transferring data, sector 2048, nr 8, cmd response 0x900” and kernel fails to mount the microSD card. It seems it's a hardware issue as this problem is not reproduced on other baseboards(XT, ADANL121) and all types of microSD cards can be used with internal microSD slot. 6. HDMI audio: − The HDMI audio works only via LVDS transmitter(for M2M FRI2 it is secondary MicroHDMI port which is closest to the antenna connector). 7. Graphics: − Framebuffer is not supported by EMGD driver at all. 8. ACPI: − Hibernate to disk does not work out of box: − The size of swap partition is too small to be able to store a memory dump(300MB against 512MB); − Hibernation works well only when root and swap partitions are located on external USB HDD. In case when MMC is used, the hibernation fails with the following errors “Read-error on swap-device...”. It seems that the MMC card is immediately turned off, so kernel cannot write a memory dump to the swap (needs additional investigation). − Accelerometer stops working after hibernation. These issues can be worked around by reloading corresponding device driver. − Suspend to RAM also fails: − If USB wakeup is enabled in the BIOS ACPI configuration, then the EHCI USB controllers wake up with all interrupts enabled in the interrupt enable register. This results in a flood of interrupts which are not handled properly (and hence not cleared) until the driver restores host controller operational state. If the number of such interrupts exceeds a certain value kernel disables the corresponding interrupt which may affect USB and other devices operation. This is probably a bug in the ACPI BIOS. − Reconfiguring EHCI to use PCI MSI edge triggered interrupts solves the interrupt flood issue but does not ensure stable USB operation - sometimes an interrupt may get lost. − The external USB ports are not powered during sleep. As a result, a USB storage device returns "Medium May Have Changed" SCSI error code which prevents kernel from continuing using the storage if it was mounted before sleep. Instead, a new USB storage device appears in the system. − If ethernet wakeup is enabled in the BIOS ACPI configuration (even only "magic packet"), then the board wakes up in a couple seconds after going to sleep due to some ethernet packets in local network. Disconnecting the cable or disconnecting the switch from the rest of network allows the board to sleep until the "magic packet" is sent. − Disabling ethernet wakeup in BIOS does not allow waking the board via ethernet the BIOS overrides wakeup settings made by the pch_gbe driver. The above issues are hardware/firmware related and cannot be resolved by OS. To summarize, sleep (suspend to memory) works only if: − USB wakeup is disabled; − no USB storage is mounted; − the board is in a relatively isolated network (or the BIOS should be fixed). − “Ondemand” governor is not supported on 600MHz M2M module. On this module the p4-clockmod driver is used instead of the acpi-cpufreq because P-States are not Page: 9/13 Revision: 1.01 Kontron Global Software Center supported. And in the p4-clockmod driver, a transition latency is specially set to be 1 higher than the maximum transition latency of the ondemand governor: http://tomoyo.sourceforge.jp/cgi-bin/lxr/source/drivers/cpufreq/p4-clockmod.c#L244 But all works well on 1300MHz module. 9. KEAPI: − KEApiGetFanSpeed, KEApiGetFanMode, KEApiSetFanModeManual, KEApiSetFanModeThermalCruise, KEApiGetCpuFanSpeed, EApiSetCpuFanSpeed, KEApiGetSystemFanSpeed, KEApiSetSystemFanSpeed, KEApiGetVoltageSensorValue, KEApiGetIntruderStatus, KEApiResetIntruderStatus, KEApiGetChipsetTemp, KEApiGetBatteryInfo, KEApiGetBatteryState, KEApiGetBacklightValue and KEApiSetBacklightValue are not supported by the module. − KEApiSmbusWriteWord, KEApiSmbusReadWord, KEApiSmbusReadBlock, KEApiSmbusWriteBlock and KEApiSmbusQuickCommand - were not tested (are not supported by available sensors/EEPROMs). − KEApiSetCpuPerformance fails on 600MHz M2M module as ondemand and conservative governors are not supported (see ACPI). − KEApiGetPciDeviceList and KEApiGpioGetDirectionCaps fail on remote host. 10. Accelerometer: − Implementation features of the event interface: − All axes share the same threshold, i.e. the values in 'in_accel_x_thresh_falling_value', 'in_accel_x_thresh_rising_value', 'in_accel_y_thresh_falling_value', 'in_accel_y_thresh_rising_value', 'in_accel_z_thresh_falling_value' and 'in_accel_z_thresh_rising_value' files are the same all the time and lie from 0 to 127. − The threshold value can be scaled(2/4/8g) via the 'range' file. − Interrupts(and corresponding events) are not generated if both 'falling' and 'rising' events are enabled for some axis. E.g. interrupts/events are not generated for the activated 'in_accel_x_thresh_rising' event if both 'n_accel_y_thresh_falling' and 'n_accel_y_thresh_falling' events have been also enabled. The problem has not been investigated yet. − When some 'falling' event is activated, the interrupt generation policy changes from 'OR' to 'AND', and 'falling' events take priority over the 'rising' events. E.g. if the 'in_accel_x_thresh_rising' and 'in_accel_y_thresh_falling' are enabled, then interrupts/events for 'in_accel_x_thresh_rising' can be generated only at the same moment when the 'in_accel_y_thresh_falling' event is generated. The problem has not been investigated yet. 11. GPIO expander: − It is impossible to turn off the radio signal on Telit HE910 modem via corresponding GPIO pin. 12. WiFi: − Both Intel 6205 and 6235 wireless adapters do not support operation as access point in 5GHz band and in “a” mode. − Also, as there was no access point that supports 5GHz band and “a” mode, both adapters were not tested as clients in 5GHz band and in “a” mode. − Low network speed(about 70-100Mbits/s) for both adapters on 600MHz M2M module. This problem is caused by low CPU performance and by general(not optimized) kernel configuration – for example the output speed can be increased by disabling/unloading ip_conntrack_ipv4 driver. − Sometimes the firmware hangs with “iwlwifi 0000:01:00.0: Microcode SW error detected. Restarting 0x2000000.” error. After this, network connection either is automatically re-established in several seconds or completely fails to do this until manual reload of the driver. Also, very often it is accompanied by a significant drop Page: 10/13 Revision: 1.01 Kontron Global Software Center in network performance. The problem is very hard to reproduce, so it has not been investigated yet. 13. RTC: − A capacitor on M2M FRI2 modules discharges too fast(two days or less), so a RTC clock resets. It causes the following problems: − All applications that use certificates will fail. E.g. openswan(IPSEC) and freeradius (802.1X). − If kdump is activated, it will update(regenerate) an initrd image each boot, which significantly increases a boot time. 14. OProfile: − After clearing out data from current session with a '--reset' command and restarting the collection of samples, an opreport utility is not able to find collected samples any more: “opreport error: No sample file found: try running opcontrol--dump or specify a session containing sample files”. The problem has not been investigated yet, but can be worked around by reinitialization of OProfile with '--deinit' and '--init' commands. 15. IPv6: − UDP performance for IPv6 is about two times less than for IPv4 when packets are generated on host. The problem has not been investigated yet. 16. KGDB over Ethernet: − Hyperthreading must be disabled in BIOS, otherwise kgdboe fails. − The link status in pch_gbe driver is checked by a watchdog thread which runs every 5 seconds. Due to some changes throughout the kernel code, timings have changed slightly, so that on the first watchdog run the link is not up, yet. This does not make problems in normal boot: the watchdog detects the link on the next run. However, when kgdboe is active the debugger goes in a wait loop with interrupts disabled and watchdog does not run. A simple workaround for the problem is to add 'netpoll.carrier_timeout=10' to the kernel commandline. This instructs netpoll_setup() to wait for link up more than default 4 seconds, which provides the watchdog with a chance for a second try. 17. 802.1X: − 802.1X doesn't work properly with hostapd on wired network(common network packets can be send/received to/from authenticator without authorization) due to lack of support for port access entity(PAE). Although it's mentioned in the hostapd's README file that PAE is supported, but most likely this phrase applies to wireless network only. 18. Grsecurity PaX: − Several tests from standard Paxtest test suite have failed. The causes of failures have not been investigated in detail, but it seems that they can be explained by limitations of Fedora distribution or meant to fail all the time. Page: 11/13 Revision: 1.01 Kontron Global Software Center 9. Changelog R00.01: First prototype. R00.02: Second prototype. Changes since the first prototype: − Kontron Linux is shipped as Installation CD (instead of LiveCD); − Update kernel to version 3.2.22; − Add support for additional hardware: − Telit HE910 GSM modem; − Intel Centrino Advanced-N 6235 WiFi module. − Add additional features: − KGDB over Ethernet; − System recovery from USB stick; − Profiling; − Crash analysis; − 802.1X; − Network time protocol; − Application heartbeat monitor; − IPsec and Internet key exchange; − Host-based intrusion detection; − Log analysis; − Boot cycle detection; − System Initialization Error Handling Enhancements. R01.00: Initial release. Changes since the second prototype: − Fix kernel issues: − Fix protection faults in EMGD driver; − Add industrial I/O events interface to lis331dlh driver; − Fix interrupt support via ACPI GPE; − Restore kexec functionality after applying grsecurity patches; − Change kexec segment descriptors; − Add CPU id for Atom E6XX to p4-clockmod driver; − Add device id for Cinterion EHS5 3G module to USB driver for GSM modems. − Integrate “debug” and “grsecurity” kernels; − Add auto load of p4-clockmod driver on 600MHz M2M modules; − Integrate gradm utility; − Integrate fixed kexec-tools and crash packages; − Prevent logcheck and tripwire daemons to start automatically; − Integrate “recovery” kernel and initrd image into bootcycle package. Update bootcycle init scripts and configuration in bootcycle and firstboot packages; − Integrate keapid package; − Delete logwatch and hostapd-logwatch packages; − Add “Remote system management” feature by integrating corresponding packages; − Fix default SELinux policy for Application heartbeat monitor; − Open ports in firewall for keapid, snmp and WBEM; − Remove broken icons from control panel; − Remove yum local repositories; − Validate updated kernel, drivers and firmware. R01.01: Update release. Changes since the initial release: − Fix kernel issues: − Fix MSA deadlock when CONFIG_LOCKDEP is enabled; Page: 12/13 Revision: 1.01 Kontron Global Software Center − Fix MSA deadlock in account_group_system_time() function; − Fix MSA build if Grsecurity is enabled; − Increase the size of percpu kernel segment; − Backport latest fixes for pch_gbe driver from upstream; − Fix memeory allocation in emgd driver; − Fix system hangs when gpio-pca953x is reloaded; − Fix kempld_wdt after waking up from hibernation; − Change default configuration for Grsecurity kernel; − Return compat-wireless-3.4; − Investigate remaining problems with LTP. − Validate the remaining functionality: RTC, SSD, VLAN, IPv6, Fast Linux restart, SELinux, Access control list, Packet filtering, Pluggable authentication modules, System logging, System/hardware diagnostics, Deployment software, System recovery from USB stick, Boot cycle detection, Grsecurity, Precise process microstate accounting, Remote system update, 802.1X, Network time protocol, Application heartbeat monitor, NAT, IPsec and Internet key exchange, Hostbased intrusion detection, Profiling, Log analysis, Remote system management, Kernel debugging, System Initialization Error Handling Enhancements, Crash analysis. Page: 13/13 Revision: 1.01