Linux 2.4.x Initialization for IA-32 HOWTO Table of Contents Linux 2.4.x Initialization for

合集下载

Linux LPC18XX BSP (Board Support Package) Guide fo

Linux LPC18XX BSP (Board Support Package) Guide fo

Linux LPC18XXBSP (Board Support Package) Guide for the Hitex LPC1850 Eval BoardRelease 1.10.1Table of Contents1.OVERVIEW (3)2.PRODUCT CONTENTS (3)2.1.S HIPPABLE H ARDWARE I TEMS (3)2.2.D OWNLOADABLE H ARDWARE M ATERIALS (3)2.3.D OWNLOADABLE S OFTWARE M ATERIALS (3)2.4.D OWNLOADABLE D OCUMENTATION M ATERIALS (3)3.SOFTWARE FUNCTIONALITY (4)3.1.S UPPORTED F EATURES (4)3.2.N EW AND C HANGED F EATURES (5)3.3.K NOWN P ROBLEMS &L IMITATIONS (5)4.HARDWARE SETUP (5)4.1.H ARDWARE I NTERFACES (5)4.2.J UMPERS (5)4.3.B OARD C ONNECTIONS (5)5.LPC1850 EVAL BOARD LINUX SOFTWARE SET-UP (6)5.1.U-B OOT I NSTALLATION (6)5.2.U-B OOT E NVIRONMENT (7)5.3.E THERNET MAC A DDRESS (8)5.4.N ETWORK C ONFIGURATION (8)5.5.L OADING L INUX I MAGES (8)5.6.U-B OOT B UILD (10)6.FURTHER MATERIALS (10)7.SUPPORT (10)1. OverviewThis document is a Linux LPC18XX BSP (Board Support Package) Guide for the HitexLPC1850 Eval board, Release 1.10.1.The BSP provides a software development environment for evaluation and development of Linux on the Cortex-M3 processor core of the NXP LPC18XX microcontroller using the Hitex LPC1850 Eval board as a hardware platform.2. Product ContentsThis product includes the following components.2.1. Shippable Hardware ItemsThe following hardware items are shipped to customers of this product:1.None - THIS IS A SOFTWARE-ONLY PACKAGE. Please purchase the LPC1850 Eval boardfrom Hitex or its distributors.2.2. Downloadable Hardware MaterialsThe following hardware materials are available for download from Emcraft's web site to customers of this product:1.None - Please obtain hardware materials pertinent to the LPC1850 Eval board directlyfrom Hitex.2.3. Downloadable Software MaterialsThe following software materials are available for download from Emcraft's web site to customers of this product:1.u-boot.bin - prebuilt U-Boot file in the format suitable for installation into embeddedFlash of Cortex-M3 on the LPC1850 Eval board;working.uImage - prebuilt Linux image ready to be loaded to the LPC1850 Evalboard;3.linux-LPC18XX-1.10.1.tar.bz2 - Linux LPC18XX software development environment,including:a)U-Boot firmware;b)Linux kernel;c)busybox and other target components;d)Linux-hosted cross-development environment;e)Framework for developing multiple projects (embedded applications) from a singleinstallation, including sample projects allowing to kick-start software development for Linux LPC18XX.2.4. Downloadable Documentation MaterialsThe following documentation materials are available for download from Emcraft's web site to customers of this product:1.linux-cortexm-um-1.10.1.pdf - Linux Cortex-M User's Manual;2.linux-LPC1850-EVAL-bspg-1.10.1.pdf - Linux LPC18XX BSP (Board Support Package)Guide for the Hitex LPC1850 Eval Board (this document).3. Software Functionality3.1. Supported FeaturesThe following list summarizes the features and capabilities of Linux LPC18XX, Release1.10.1:∙U-Boot firmware:o U-Boot v2010.03;o Target initialization from power-on / reset;o Runs from the internal eNVM and internal SRAM (no external memory required for standalone operation);o Serial console;o Ethernet driver for loading images to the target;o Serial driver for loading images to the target;o Device driver for built-in Flash (eNVM) and self-upgrade capability;o Device driver for storing environment and Linux images in external Flash;o Autoboot feature, allowing boot of OS images from Flash or other storage with no operator intervention;o Persistent environment in Flash for customization of target operation;o Sophisticated command interface for maintenance and development of the target. ∙Linux:o uClinux kernel v2.6.33;o Boot from compressed and uncompressed images;o Ability to run critical kernel code from integrated Flash of LPC18XX;o Serial device driver and Linux console;o Ethernet device driver and networking (ping, NFS, Telnet, FTP, ntpd, etc.);o busybox v1.17;o POSIX pthreads;o Hardened exception handling; an exception triggered by a process affects only the offending process;o Loadable kernel modules;o Secure shell (ssh) daemon;o Web server;o MTD-based Flash partitioning and persistent JFFS2 Flash file system for external Flash.∙Development tools:o ARMv7-optimized GNU toolchain from CodeSourcery (2010q1) is used for development of U-Boot, Linux and user-space applications (toolchain must bedownloaded separately from the CodeSourcery web site);o Cross GDB for debugging user-space applications;o mkimage tool used by the Linux kernel build process to create a Linux image bootable by U-Boot.∙Development environment:o Linux-hosted cross-development environment;o Development of multiple projects (embedded applications) from a single installation;o hello sample project ("Hello, world!" single-process configuration);o networking sample project (basic shell, networking and Flash management tools demonstration);o developer sample project (template project that can be used to jump-start development of custom user-space applications and loadable kernel modules).3.2. New and Changed FeaturesThis section lists new and changed features of this release:1.Improve boot-up time of network-enabled configurations in Linux Cortex-M3/M4.ID: RT 85493.3.3. Known Problems & LimitationsThis section lists known problems and limitations of this release:1.CONFIG_KERNEL_IN_ENVM requires disabling CONFIG_ARM_UNWINDand CONFIG_EARLY_PRINTK.ID: RT 74683.Workaround: When enabling CONFIG_KERNEL_IN_ENVM in the kernel, disableCONFIG_ARM_UNWIND and CONFIG_EARLY_PRINTK.4. Hardware SetupThis section explains how to set up the Hitex LPC1850 Eval board.4.1. Hardware InterfacesFor a description of the hardware interfaces provided by the LPC1850 Eval board, refer to detailed technical documentation and other associated materials available from Hitex.4.2. JumpersThe following jumpers must be configured on the LPC1850 Eval board:Jumper Configuration NotesJP5 2-3 closed Ethernet: MII modeJP14 2-3 closed Ethernet: MII modeJP15 open Ethernet: MII modeJP23 open Disable write protection of NOR flashSV1 only 5-6 and 7-8 closed Connect USART0 to the DB9 port "UART" SV3 all closed Connect Ethernet signalsSV6 all closed Connect Ethernet signalsSV12 all open Disconnect signals optionally shared withEthernetSV13 all open Disconnect signals optionally shared withEthernet4.3. Board ConnectionsTo power the LPC1850 Eval board up, simply connect it to a PC / notebook by plugging a USB-B cable into the X2 USB-B connector on the LPC1850 Eval board. As soon as theconnection to the PC has been made, the various on-boards LEDs should lit up, indicating that the board is up and running.To provide a serial interface to a PC / notebook plug a RS-232 cable to the X1 "UART" connector on the board. On the PC side, the serial link provides a serial console device to the LPC1850 Eval. The software installed on the board is configured for a 115.2 K terminal. On the Linux host, the serial console is available using a /dev/ttyS n device.To provide network connectivity to the board, connect it into your LAN by plugging a standard Ethernet cable into the 10/100 Ethernet connector. The board is pre-configured with an IP address of 192.168.0.2.5. LPC1850 Eval Board Linux Software Set-up5.1. U-Boot InstallationTo install U-boot onto the Hitex LPC1850 Eval, follow the step-wise procedure documented below:1.Configure the boot select jumpers according to the table below for booting from USB0:Jumper ConfigurationBOOT1 1-2 closedBOOT2 2-3 closedBOOT3 1-2 closedBOOT4 2-3 closed2.Connect the UART port of the LPC1850 Eval board to a host.3.Run a terminal program (e.g. HyperTerminal on Windows, or kermit on Linux) and createa serial connection to the LPC1850 Eval board with the following COM-port settings:115200 8N1.4.Connect the LPC1850 Eval board to a Linux host by plugging a USB-B cable into the X2USB-B connector on the LPC1850 Eval board.5.Install the free tool dfu-util on the Linux host either from your Linux distributionpackages or by building it from sources. The sources of dfu-util are available fordownload at /.6.Boot U-Boot on the LPC1850 Eval board by running dfu-util on the Linux host.dfu-util -R -D u-boot.bin7.Start a TFTP server in the local network of the LPC1850 Eval board and make the u-boot.bin image available on this TFTP server.8.Set the U-Boot environment variables serverip and ipaddr to the IP address of theTFTP server and the desired IP address of the LPC1850 Eval board, respectively.LPC1850-EVAL> setenv serverip 192.168.0.10LPC1850-EVAL> setenv ipaddr 192.168.0.18LPC1850-EVAL>9.Download the u-boot.bin image into the on-board RAM.LPC1850-EVAL> tftp lpc18xx/u-boot.binpleted.LPC18XX_MAC: link UP (100/Full)Using LPC18XX_MAC deviceTFTP from server 192.168.0.10; our IP address is 192.168.0.18Filename 'lpc18xx/u-boot.bin'.Load address: 0x28000000Loading: #######doneBytes transferred = 93200 (16c10 hex)LPC1850-EVAL>10.Write the u-boot.bin image into the beginning of the on-board NOR flash.LPC1850-EVAL> era 1c000000 +${filesize}....................... doneErased 23 sectorsLPC1850-EVAL> cp.b ${fileaddr} 1c000000 ${filesize}Copy to Flash... doneLPC1850-EVAL>11.Reconfigure the boot select jumpers according to the table below for booting from NORflash:Jumper ConfigurationBOOT1 1-2 closedBOOT2 1-2 closedBOOT3 2-3 closedBOOT4 2-3 closed12.Reset the LPC1850 Eval board and see the U-Boot start-up banner in the terminalprogram.5.2. U-Boot EnvironmentWhen the LPC1850 Eval board is reset, the Linux bootstrap will proceed to boot the U-Boot firmware from the external NOR Flash printing the following output to the serial console:U-Boot 2010.03-linux-cortexm-1.10.1 (June 11 2013 - 19:43:46)CPU : LPC18xx series (Cortex-M3)Freqs: SYSTICK=180MHz,CCLK=180MHzBoard: Hitex LPC1850 Eval rev 1DRAM: 8 MBFlash: 4 MB*** Warning - bad CRC, using default environmentIn: serialOut: serialErr: serialNet: LPC18XX_MACHit any key to stop autoboot: 0LPC1850-EVAL>U-boot makes use of the so-called environment variables to define various aspects of the system functionality. Parameters defined by the U-boot environment variables include: target IP address, target MAC address, address in RAM where a Linux bootable images will be loaded, and many more. To examine the current settings of the environment variables, run printenv from the U-Boot command interface.The reason for the warning about the "bad CRC" is that U-Boot is configured to store its environment variables in the external Flash. However, this being the first time when you boot Linux LPC18XX on the development board, obviously there is no U-Boot environment programmed to the external Flash. U-Boot goes to the external Flash, fails to find its environment there, prints the warning message and resorts to using the default environment integrated into the U-Boot image at build time.U-Boot provides a command called saveenv that stores the up-to-date run-time environment to the persistent storage, which will be the external Flash for the U-Boot configuration used on the LPC1850 Eval board. You need to call saveenv any time when you want to copy current settings of the environment variables to the persistent storage in Flash.This is how you can write the current U-Boot environment to the external Flash:LPC1850-EVAL> saveenvSaving Environment to Flash......LPC1850-EVAL>Reset the LPC1850 Eval board and check that there is no warning about the bad CRC in the boot-up messages. This is expected since now U-Boot successfully finds its environment in the external Flash:LPC1850-EVAL> resetresetting ...U-Boot 2010.03-linux-cortexm-1.10.1 (June 11 2013 - 19:43:45)...Hit any key to stop autoboot: 0LPC1850-EVAL>5.3. Ethernet MAC AddressIn Linux LPC18XX, the MAC address of the Ethernet interface is defined by the ethaddr U-Boot environment variable. The value of the MAC address can be examined from the U-Boot command line monitor as follows:LPC1850-EVAL> printenv ethaddrethaddr=C0:B1:3C:88:88:88LPC1850-EVAL>The default U-Boot environment for the LPC1850 Eval board sets ethaddr to a fixed MAC address. This address should work for you in a general case, however if you have more than two LPC1850 Eval boards in your LAN, use of the same address on multiple boards may result in packet collisions in your LAN and overall may render your LAN mal-functioning.If you have more than one LPC1850 Eval boards in your LAN, you have to assign a unique MAC address to each board.The MAC address can be changed by modifying the ethaddr variable as follows:LPC1850-EVAL> setenv ethaddr C0:B1:3C:88:88:89Don't forget to store your update in the persistent storage using saveenv so it is remembered across resets and power cycles.5.4. Network ConfigurationYou will have to update the network configuration of your board to match settings of your local environment.Typically, all you have to allow loading images over network from a TFTP server is update the U-Boot environment variables ipaddr (the board IP address) and serverip (the IP address of the TFTP server). Here is how it is done.Update ipaddr and serverip:LPC1850-EVAL> setenv ipaddr 192.168.0.2LPC1850-EVAL> setenv serverip 192.168.0.1and then save the updated environment to the external Flash so that your changes are persistent across resets/power cycles.5.5. Loading Linux ImagesAt this point, you are able to load Linux bootable images to the board over TFTP and either boot them directly or install them to the external Flash to allow booting Linux from Flash on power-up/reset.On the host, activate the Linux LPC18XX development environment and build the networking project:-bash-3.2$ . ACTIVATE.sh-bash-3.2$ cd projects/networking/-bash-3.2$ make...-bash-3.2$Copy the Linux bootable image to the TFTP download directory:-bash-3.2$ cp networking.uImage /tftpboot/vlad/-bash-3.2$To load the image directly, use the netboot U-Boot macro:LPC1850-EVAL> setenv image vlad/networking.uImageLPC1850-EVAL> run netboot...TFTP from server 172.17.0.1; our IP address is 172.17.5.100Filename 'vlad/networking.uImage'....Loading: ###############################################################################################################################################doneBytes transferred = 2084704 (1fcf60 hex)...Image Name: Linux-2.6.33-arm1Image Type: ARM Linux Kernel Image (uncompressed)...Verifying Checksum ... OKLoading Kernel Image ... OKOKStarting kernel ...Linuxversion2.6.33-arm1(******************.com)(gccversion4.4.1(SourceryG++Lite 2010q1-189) ) #1 Tue June 11 15:43:44 MSK 2013...To load the image into the Flash, use the U-Boot update macro:LPC1850-EVAL> setenv image vlad/networking.uImageLPC1850-EVAL> run update...TFTP from server 172.17.0.1; our IP address is 172.17.5.100Filename 'vlad/networking.uImage'....Loading: ###############################################################################################################################################doneBytes transferred = 2084704 (1fcf60 hex) ................................ doneUn-Protected 32 sectors................................ doneErased 32 sectorsCopy to Flash... doneLPC1850-EVAL>Reset the board and verify that the newly programmed image boots on the target in the autoboot mode:LPC1850-EVAL> resetresetting ...U-Boot 2010.03-linux-cortexm-1.10.1 (June 11 2013 - 17:19:37)...Starting kernel ......init started: BusyBox v1.17.0 (June 11 2013 - 17:19:37)~ #5.6. U-Boot BuildThe BSP distribution comes with U-Boot pre-built for the LPC1850 Eval board. If however you need to re-build U-Boot for your board, please follow the instructions below:1.Install the Linux LPC18XX distribution to the development host, as described in the LinuxCortex-M User's Manual.2.From the top of the Linux LPC18XX installation, activate the Linux LPC18XX cross-compile environment by running . ACTIVATE.sh.3.Go to the U-Boot source directory (cd u-boot/).4.Run the following commands:[psl@pvr u-boot]$ make lpc1850-eval_configConfiguring for lpc1850-eval board...[psl@pvr u-boot]$ make -s6. Further MaterialsRefer to Linux Cortex-M User's Manua l for detailed information on the software architecture of the Linux LPC18XX distribution.Visit Emcraft Systems' web site at to obtain additional materials related to Linux LPC18XX.7. SupportWe appreciate your review of our product and welcome any and all feedback. Comments can be sent directly by email to:*****************************The following level of support is included with your purchase of this product:∙Email support for installation, configuration and basic use scenarios of the product during3 months since the product purchase;∙Free upgrade to new releases of the downloadable materials included in the product during 3 months since the product purchase.If you require support beyond of what is described above, we will be happy to provide it using resources of our contract development team. Please contact us for details.。

NVIDIA Tegra Linux Driver Package R24.1 说明书

NVIDIA Tegra Linux Driver Package R24.1 说明书

RN_05071-R24 | June 15, 2016 Advance Information | Subject to ChangeRelease NotesRN_05071-R24TABLE OF CONTENTS1.0ABOUT THIS RELEASE (3)1.1What’s New (3)1.2Login Credentials (3)1.3Sources for Included Linux Distribution Packages (4)1.4Top Issues Fixed Since Last Release (4)2.0IMPLEMENTATION NOTES (5)2.1Compiling CUDA Samples (5)2.2Gstreamer-0.10 Deprecated (5)2.3Installing Jetpack on non-English lanugage Host Systems (5)2.4Maximizing Tegra X1 Performance (6)2.532-bit hardfp Support Deprecated (7)2.6Media Controller Support Included in V4L2 for CSI Camera (8)3.0KNOWN ISSUES (9)1.0The NVIDIA® Tegra® Linux Driver Package supports development of platforms running: ④NVIDIA® Tegra® X1 series computer-on-a-chip④Linux kernel 3.10.96Note: This release of Tegra Linux Driver Package R24.1 is a release for theNVIDIA® Jetson™ Developer Kit (P2371-2180).1.1WHAT’S NEW④Support for 64-bit user space and runtime libraries④Vulkan support④V4L2 media-controller driver support for camera sensors (bypassing ISP)See “Software Features” in the Tegra Linux Driver Package Development Guide for more information about the features of this release.For a complete list of kernel changes in this release see the following website:/gitweb/?p=linux-3.10.git;a=shortlog;h=refs/heads/l4t/l4t-r24.11.2LOGIN CREDENTIALSThe default login credentials are:④Username: ubuntu④Password: ubuntuRelease Notes1.3SOURCES FOR INCLUDED LINUX DISTRIBUTION PACKAGES Visit the Jetson Embedded Platform website for source code provided subject to the terms of open source licenses that require source code availability, such as the GNU General Public License.1.4TOP ISSUES FIXED SINCE LAST RELEASEThe following issues are resolved in this release.④[1723265] Hard resetting the TX1 board while it is above 44°C will cause boot failure dueto default system shut down value is set to 44°C. The system will boot up once cooled down to below 44°C. This issue does not occur upon warm reset.④[1723265] Hard resetting the TX1 board while it is above 44°C will cause boot failure dueto default system shut down value is set to 44°C.④[200170514] OSidle power consumption is around 185mW higher when eth0 is disabled.④[1748166] Symlinks reference “tegra186” files not present in kernel source tree.④[1708129] GStreamer unable to set FPS rate to rate supported by sensor.2.02.1COMPILING CUDA SAMPLESUse the following procedure to compile CUDA samples in this release (both in aarch64 and hardfp) on the target system.To compile CUDA samples1.Make the following edit in the Makefile:FILTER_OUT := 0_Simple/cdpSimplePrint/Makefile0_Simple/cdpSimpleQuicksort/Makefile 2_Graphics/bindlessTexture/Makefilepile the samples with the following command:GLLINK=-L/usr/lib/aarch64-linux-gnu/tegra make2.2GSTREAMER-0.10 DEPRECATEDGstreamer version 0.10 support is deprecated in this release. Use of Gstreamer version 1.0 is recommended for development.2.3INSTALLING JETPACK ON NON-ENGLISH LANUGAGE HOSTSYSTEMSThe Jetpack installer in this release does not correctly detect a 64-bit CPU (and operating system) on the host unless English is the default language.To workaround3.On the host system, install (or verify installation of) the English language package withthe following command:sudo apt-get install language-pack-en4.Open /etc/default/locale for editing with the following command:sudo nano /etc/default/localement out the language specification in /etc/default/locale and add the following:LANG=”en_US.UTF-8”6.Reboot the host.unch Jetpack with the following command:sudo ./JetPack-L4T-2.1-linux-x64.run2.4MAXIMIZING TEGRA X1 PERFORMANCEThe commands in the following procedure disable DVFS, CPU Idle, and CPU Quit, to maximize performance. The commands in the procedure are also included in this release as a script, jetson_clocks_max.sh. See “Downloads” in the Tegra Linux Driver Package Development Guide for the script file.For more information on power and performance management, see the following website: /Jetson/PerformanceNote: Wait 1 minute after booting L4T to change the CPU frequency governor,to avoid settings being overridden by the Ubuntu initialization script.To maximize Tegra X1 performance1.Set CPU and GPU frequencies to maximum and keep 4 Cortex A57 cores always on withthe following commands (as root):sudo suecho userspace > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governorecho userspace > /sys/devices/system/cpu/cpu1/cpufreq/scaling_governorecho userspace > /sys/devices/system/cpu/cpu2/cpufreq/scaling_governorecho userspace > /sys/devices/system/cpu/cpu3/cpufreq/scaling_governorcat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq > \/sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freqcat /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq > \/sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freqcat /sys/devices/system/cpu/cpu2/cpufreq/scaling_max_freq > \/sys/devices/system/cpu/cpu2/cpufreq/scaling_min_freqcat /sys/devices/system/cpu/cpu3/cpufreq/scaling_max_freq > \/sys/devices/system/cpu/cpu3/cpufreq/scaling_min_freqecho 0 > /sys/devices/system/cpu/cpuquiet/tegra_cpuquiet/enablefor file in /sys/devices/system/cpu/cpu*/online; doif [ `cat $file` -eq 0 ]; thenecho 1 > $filefidoneecho runnable > /sys/devices/system/cpu/cpuquiet/current_governorcat /sys/kernel/debug/clock/gpu_dvfs_tcat /sys/kernel/debug/clock/dvfs_tablecat /sys/kernel/debug/clock/gbus/max >/sys/kernel/debug/clock/override.gbus/rateecho 1 > /sys/kernel/debug/clock/override.gbus/state2.Disable CPU Idle with the following command:for i in `ls /sys/devices/system/cpu/cpu*/cpuidle/state*/disable`; do echo 1 > $i; done3.Set EMC frequency to maximum with the following command (as root):cat /sys/kernel/debug/clock/override.emc/max > \/sys/kernel/debug/clock/override.emc/rateecho 1 > /sys/kernel/debug/clock/override.emc/state4.Turn on the fan with the following command:echo 255 > /sys/kernel/debug/tegra_fan/target_pwm2.532-BIT HARDFP SUPPORT DEPRECATEDProviding only aarch64 is planned for the next release of L4T, R24.2. The R24.1 release is the last release that the hardfp BSP for 32-bit user space support is provided.The R24.1 release provides both 32-bit and 64-bit user space support, for the purposes of migration to 64-bit user space. Future releases are planned to support only 64-bit (aarch64) user space.2.6MEDIA CONTROLLER SUPPORT INCLUDED IN V4L2 FOR CSICAMERASupport for the soc_camera driver is deprecated, and is planned to be disabled in theR24.2 release. Both soc_camera and media-controller drivers are provided in this release for the purposes of migration to media-controller.3.0This section provides details about issues that were discovered during development and QA but not resolved prior to this release.In the following Known Issues tables, a check mark (✓) appearing in either the New or Past columns means:New Indicates issues found in this release.Past Indicates issues present in (and continuing to be present in) the last release.Issue New Past1.CUDA sample compilation on device is unsuccessful. The issue occurs in✓ both aarch64 and hardfp. [200199690]To workaround1.Make the following edit in the Makefile:FILTER_OUT := 0_Simple/cdpSimplePrint/Makefile0_Simple/cdpSimpleQuicksort/Makefile2_Graphics/bindlessTexture/Makefilepile the samples with the following command:GLLINK=-L/usr/lib/aarch64-linux-gnu/tegra make2.Multimedia playback and camera preview corruption may occur when✓ using the Gstreamer eglimagesink component on 64-bit X11. [1762118,200196931, 200197045, 200197818]3.Video files received via RTSP streaming from CSI camera sources✓ display slight corruption and stutter. [200197840]Release NotesIssue New Past4.Device occasionally fails to send or receive files over Bluetooth.✓[200198405]5.Register dumps and data CRC errors are displayed on mmc2/mmcblklp1✓ during LP switching. [200159844]6.The first run of the nvgscapture 1.0 test application causes errors to be✓displayed similar to the following:GStreamer-WARNING **: Failed to load plugin'/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgsteglglessink.so'The OSS version of EGL sink does not function correctly in this case.[1751872]7.LP switching is unsuccessful when SATA is connected to the Jetson TX1✓target (firmware version 50.11). [1691314]8.Very rarely, the system becomes non-responsive during boot on u-boot✓loader during reboot stress loop testing. [200165179]9.The CPU hangs when using Bluetooth and an NFS file system.✓[200157186]10.Errors display when using rfkill to unblock Bluetooth, when also using✓an NFS file system. [200153200]11.Unhandled level 3 translation fault occurs during Bluetooth data✓transfer. [200152749]12.Sync-point hang failures occur during scfunititests (kernel warning✓test.) [1750443]13.Camera preview becomes non-responsive during stress testing of✓ video/image recording. [1736102]14.Connected Bluetooth headset incorrectly displays “mono” mode.✓ [200194792]15.Continuous "max77620_clear_syswdt clearing watchdog" messages✓ display in the UART console log if the device is idle more than 30seconds after placing the device in reset-recovery mode. [200196228]16.Logging in to GNOME desktop (gnome-shell) is unsuccessful,✓ accompanied by display corruption. [200196882]17.Time to resume from Deep Sleep (LP0) is slow. [200088740] ✓✓18.Disabled (DSI-0) Primary HDMI display causes the following error todisplay in logs:vgaarb: this pci device is not a vga device"[200122163]Release NotesTegra Linux Driver Package R24.1 RN_05071-R24 | 11IssueNewPast 19. System intermittently becomes non-responsive during reboot stresstesting with reboot or init 6. [200134773] ✓ 20. The Camera app (NvGstPlayer-1.0) invokes an out of memory killerbecause of memory leak when playing multiple images in a loop. [200151236]✓21. Corrupted pixels occur after the image shows up on the preview for afew minutes. [200174822] ✓ 22. Resolution goes to 1440 x 576 at 52.1 Hz with warnings from tegra_dcupon idle timeout resume. [200175128]✓NoticeALL NVIDIA DESIGN SPECIFICATIONS, REFERENCE BOARDS, FILES, DRAWINGS, DIAGNOSTICS, LISTS, AND OTHER DOCUMENTS (TOGETHER AND SEPARATELY, "MATERIALS") ARE BEING PROVIDED "AS IS." NVIDIA MAKES NO WARRANTIES, EXPRESS, IMPLIED, STATUTORY, OR OTHERWISE WITH RESPECT TO THE MATERIALS, AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OR CONDITION OF TITLE, MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE AND ON-INFRINGEMENT, ARE HEREBY EXCLUDED TO THE MAXIMUM EXTENT PERMITTED BY LAW.Information furnished is believed to be accurate and reliable. However, NVIDIA Corporation assumes no responsibility for the consequences of use of such information or for any infringement of patents or other rights of third parties that may result from its use. No license is granted by implication or otherwise under any patent or patent rights of NVIDIA Corporation. Specifications mentioned in this publication are subject to change without notice. This publication supersedes and replaces all information previously supplied. NVIDIA Corporation products are not authorized for use as critical components in life support devices or systems without express written approval of NVIDIA Corporation.TrademarksNVIDIA and the NVIDIA logo are trademarks or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.Copyright© 2016 NVIDIA Corporation. All rights reserved.。

Micro Focus Visual COBOL Development Hub R4 Update

Micro Focus Visual COBOL Development Hub R4 Update

Micro Focus Visual COBOL Development Hub R4 Update 1 Release NotesMicro FocusThe Lawn22-30 Old Bath RoadNewbury, Berkshire RG14 1QNUKCopyright © Micro Focus IP Development Limited 2009-2011. All rights reserved.MICRO FOCUS, the Micro Focus logo and Visual COBOL are trademarks or registeredtrademarks of Micro Focus IP Development Limited or its subsidiaries or affiliatedcompanies in the United States, United Kingdom and other countries.All other marks are the property of their respective owners.2011-09-09iiContentsMicro Focus Visual COBOL Development Hub R4 Update 1 Release Notes (4)Installation (5)System Requirements for Visual COBOL Development Hub (5)Installing Visual COBOL Development Hub (5)UNIX Installer Issues (6)Uninstalling (7)Configuring the Remote System Explorer Support (7)Licensing Information (8)Updates and SupportLine (9)Further Information and Product Support (9)Information We Need (9)Creating Debug Files (10)Supplementary Information (11)Disclaimer (12)Contents | 3Micro Focus Visual COBOL DevelopmentHub R4 Update 1 Release NotesThese release notes contain information that might not appear in the Help. Read them in their entiretybefore you install the product.Note: This document contains a number of links to external Web sites. Micro Focus cannot beresponsible for the contents of the Web site or for the contents of any site to which it might link. Websites by their nature can change very rapidly and although we try to keep our links up-to-date, wecannot guarantee that they will always work as expected.4 | Micro Focus Visual COBOL Development Hub R4 Update 1 Release NotesInstallationNote: If you are installing on Solaris, please read UNIX Installer Issues first.System Requirements for Visual COBOL Development HubHardware RequirementsOperating Systems:AIX POWER 6.1, 7.1 32/64-bitHP IA 11.31 32/64-bitRed Hat Linux x86-64 5.5 32/64-bit Solaris 10 SPARC 32/64-bit SUSE 11 Linux x86-64 32/64-bitDisk Space:60 Mb for the Sentinel RMS license serverAbout 300 Mb for Micro Focus Development Hub. Note: The installation requires extradisk space that equals the size of the product you install.Software RequirementsYou need to install Java Platform Standard Edition (Java SE) 6 or later (32-bit only) beforehand. You candownload Java SE from and install it anywhere on your machine.Before you start the installation, you need to set the environment as follows:•Set the JAVA_HOME environment variable. When installing the product, set this variable to a 32-bit Java installation or the installation will terminate. For example, execute the following:JAVA_HOME=java_install_dirwhere java_install_dir is the path to the JAVA installation directory such as /usr/java/java n.n •Add $JAVA_HOME/bin to your system PATH variable. To do this, execute:export PATH=$JAVA_HOME/bin:$PATH•Set the LANG environment variable in order to pick up localized messages. The LANG settings are English and Japanese only.Installing Visual COBOL Development HubNote: If you are installing on Solaris, please read UNIX Installer Issues first.Download the setup file on your machine and install the product as follows:1.Execute the following to give execute permissions to the setup file:chmod +x setup_viscobolr4_devhub_update12.Run the installer with superuser permissions:COBDIR=[location of the base product]./setup_viscobolr4_devhub_update1Installation | 5If you don't run this as superuser you will be prompted to enter the superuser password during theinstallation.COBDIR must be set or point to the location of the installed base product. If it is not set or if the installerdoes not find a valid product at that location, the installation will terminate.To install in a different location use the -installlocation="Location" parameter to specify analternative directory location. For example:./setup_viscobolr4_devhub_update1 -installlocation="full path of newlocation"You can see details about which additional parameters can be passed to the install script if you enterthe -help option.Note:•The installation of this product may affect the SafeNet Sentinel licensed components running on your machine. During installation licensing is shutdown to allow files to be updated. Toensure the processes running on your machine will not be affected, you need to use –skipsafenet option which skips the installation of SafeNet:./setup_viscobolr4_devhub_update1 -skipsafenet•To protect the SafeNet Sentinel installation from accidental updating you can create an empty file named SKIP_SAFENET_INSTALL in /var/microfocuslicensing/ as follows:touch /var/microfocuslicensing/SKIP_SAFENET_INSTALLWhile the file is present, the SafeNet installer will not make changes to the installation orshutdown the running license daemons. If later licensing needs to be updated, remove the fileand install Sentinel RMS server manually.3.Set up the environment:When you have installed the product, you need to set the environment as described below.Note: These commands set the environment only for the current shell. You need to execute themfor each new shell that you start.a.To set up your product, execute:. /opt/microfocus/VisualCOBOL/bin/cobsetenvb.To verify that your product is installed and licensed, execute:cob -VersionTip: To avoid having to run cobsetenv for every shell, add these commands to the shellinitialization files (etc/profile, etc/bashrc, etc.)Note: For information about the Visual COBOL Development Hub, check the help for Visual COBOLfor Eclipse that is available on the Micro Focus Infocenter.UNIX Installer IssuesLicense Infrastructure InstallerOn some Solaris platforms, you can receive the following error message when SafeNet license serverneeds to be installed or upgraded on your machine:tar: /safenet.tar: No such file or directoryTo resolve this issue, wait for the installation to complete and then perform the following:1.Navigate to the SafeNet directory in the COBDIR location.2.With superuser permissions execute: ./MFLicenseServerInstall.sh6 | InstallationUninstallingTo remove Visual COBOL Development Hub from your machine:1.Execute the Uninstall_VisualCOBOLR4.sh script in the $COBDIR/bin directory.Note: Uninstalling Visual COBOL does not automatically uninstall the Micro Focus LicensingManager or the prerequisite software.To uninstall Micro Focus License Manager, run the UnInstallMFLicenseServer.sh script inthe /var/microfocuslicensing/bin directory. The script will not remove some of the files asthey contain certain system settings or licenses.You can optionally remove the prerequisite software. For instructions, check the documentation of therespective software vendor.Configuring the Remote System Explorer SupportThe remote development support from the Eclipse IDE relies upon the RSE DStore feature running on theUnix machine and handling all requests from the IDE for building and debugging programs. The RSEDStore feature runs as a Unix daemon and initiates RSE DStore servers as Eclipse clients connect to it.Whichever environment is used to start the DStore daemon will be inherited for all servers and hence allbuild and debug sessions. Click here for further details about the Eclipse RSE DStore server.To start the RSE DStore daemon, you need a version of both Perl on your Unix machine and a version ofJava.Starting the RSE DaemonTo start the daemon on the default port (4075) as a background process, perform this command withsuperuser authority:$COBDIR/remotedev/startrdodaemon &The daemon will now listen for any Eclipse RSE processes connecting to that machine on port 4075. If youwant to use another port, then specify another port number on the startrdodaemon command.The daemon can also be configured to instantiate the servers on a specified range of ports. This isparticularly relevant when you want to only open certain ports through a firewall.Stopping the RSE DaemonTo stop the daemon, type the following command (with superuser authority):$COBDIR/remotedev/stoprdodaemon <port>Configuring the EnvironmentSome environment setting may need to be set up before starting the RSE Daemon. This is because whena build or debug session is initiated on the development hub from one of the Eclipse clients, theenvironment used will be inherited from whatever was used to start the daemon. A typical example of thekind of environment that might need to be set up would include database locations and settings for SQLaccess at build/run time.Installation | 7Licensing InformationTip: If you are unsure about what your licensing policy is or what sort of license you require, consultyour System Administrator or Micro Focus SupportLine to obtain a valid license.UNIX The Micro Focus Licensing System is installed into the /var/microfocuslicensing directory.To license your software:1.Run the Micro Focus Licensing Administration utility:sh /var/microfocuslicensing/bin/cesadmintool.shNote:•You need permissions to write to the license file which normally means you need tolog in as root.•Make sure Java is on the PATH before you run the utility. See System Requirementsfor more information.2.Select an option as appropriate and press Enter:If you have access to the Internet:Select Online Authorization. You will be prompted to enter the Authorization Code suppliedwith your delivery notice.If you do not have access to the Internet:You need the license strings. In order to obtain them, you need your Authorization Code, yourMachine Id and a machine with access to the Internet.a.Choose Get Machine Id and press Enter.b.Make a note of the information which is displayed.c.On the machine which is connected to the Internet, open /activation/ in a browser.d.Follow the instructions to obtain the license strings and save them to a text file.e.Copy the text file to the first machine on which you are installing the product.f.At the command line, select Manual License Installation from the licensing options andenter the full name of the file containing the license strings.8 | Licensing InformationUpdates and SupportLineOur Web site gives up-to-date details of contact numbers and addresses.Further Information and Product SupportAdditional technical information or advice is available from several sources.The product support pages contain a considerable amount of additional information, such as:•The WebSync service, where you can download fixes and documentation updates.•The Knowledge Base, a large collection of product tips and workarounds.•Examples and Utilities, including demos and additional product documentation.To connect, enter in your browser to go to the Micro Focus home page.Note: Some information may be available only to customers who have maintenance agreements.If you obtained this product directly from Micro Focus, contact us as described on the Micro Focus Website, . If you obtained the product from another source, such as an authorizeddistributor, contact them for help first. If they are unable to help, contact us.Information We NeedHowever you contact us, please try to include the information below, if you have it. The more informationyou can give, the better SupportLine can help you. But if you don't know all the answers, or you think someare irrelevant to your problem, please give whatever information you have.•The name and version number of all products that you think might be causing a problem.•Your computer make and model.•Your operating system version number and details of any networking software you are using.•The amount of memory in your computer.•The relevant page reference or section in the documentation.•Your Software Support Identification Number (SHIN) if you have one (not used in all countries).•Your serial number. To find out these numbers, look in the subject line and body of your Electronic Product Delivery Notice email that you received from Micro Focus.Alternatively, you might be asked to provide a log file created by the Consolidated Tracing Facility (CTF) -a tracing infrastructure that enables you to quickly and easily produce diagnostic information detailing theoperation of a number of Micro Focus software components.On UNIX, you can use the Micro Focus UNIX Support Scan Utility, mfsupport, to create a log file thatcontains the details about your environment, product, and settings. The mfsupport script is stored in$COBDIR/bin.To run mfsupport:1.Start a UNIX shell.2.Set COBDIR to the product with issues.3.Execute mfsupport from a directory where you have write permissions.This creates a log file, mfpoll.txt, in that directory.4.When the script finishes, send the mfpoll.txt file to your Micro Focus SupportLine representative.Updates and SupportLine | 9Note:If COBDIR is set to a location which does not contain etc/cobver, the script outputs the contentsof /opt/microfocus/logs/MicroFocusProductRegistry.dat which keeps a list of theinstalled Micro Focus products.Creating Debug FilesIf you encounter an error when compiling a program that requires you to contact Micro Focus technicalsupport, your support representative might request that you provide additional debug files (as well assource and data files) to help us determine the cause of the problem.There are three debug files that the support representative could ask you to provide. The debug files, andthe directives you use to create them, are as follows:Directive File Created ContainsCHKECM(CTRACE)ecmtrace.txt Pseudo COBOL code that shows thecode generated to replace the EXECSQL statements. This file isequivalent to output out of the IBMCOBOL precompiler.CHKECM(TRACE)ecmtrace.txt Detailed information as to whatinformation is passed between thepreprocessor and the Compiler. If anerror occurs that generates invalidsyntax, this file will be required tohelp isolate where the problemoccurred.DB2(CTRACE)sqltrace.txt Detailed list of information passed toIBM precompiler services and theresults. This file is very useful if anerror may involve a bug in the DB2system software as well as thepreprocessor.10 | Updates and SupportLineSupplementary InformationThe following sections in the documentation have been changed since it was released:Compiler DirectivesThe Compiler directive ILREF is applicable to JVM managed COBOL, as well as .NET managed COBOL. Itpermits the definition of extension methods and extension operators that are outside of the currentcompilation unit.For the parameter, specify a .class or .jar filename that contains the required extension methods andextension operators. When you do:•All .class files specified are scanned, and extension methods and extension operators are loaded into the compiler's type resolution system.•All .jar files specified are read in memory, and any .class files that they contain are processed as above.•All other files that do not end in the suffix .jar or .class are assumed to be in .jar format, and treated as such. This allows support for .zip, .war, .ear and other such file suffixes.Any file specified that is not successfully processed by any of the above methods will result in an exceptionerror during Compiler startup.Supplementary Information | 11DisclaimerThis software is provided "as is" without warranty of any kind. Micro Focus disclaims all warranties, eitherexpress or implied, including the warranties of merchantability and fitness for a particular purpose. In noevent shall Micro Focus or its suppliers be liable for any damages whatsoever including direct, indirect,incidental, consequential, loss of business profits or special damages, even if Micro Focus or its suppliershave been advised of the possibility of such damages. Some states do not allow the exclusion or limitationof liability for consequential or incidental damages so the foregoing limitation may not apply.Micro Focus is a registered trademark.Copyright © Micro Focus IP Development Limited 1984-2011. All rights reserved.12 | DisclaimerIndex Ccontact information 9 Ddebuggingerror messages 10 downloads 9HHCOerrors 10IInformation Sources 9Pproduct support 9Product Support 9Sserial number 9support 9SupportLine 9WWebSync 9works order number 9Index | 13。

NVIDIA Collective Communication Library (NCCL) 安装指

NVIDIA Collective Communication Library (NCCL) 安装指

NVIDIA Collective Communication Library (NCCL)Installation GuideTable of ContentsChapter 1. Overview (1)Chapter 2. Prerequisites (3)2.1. Software Requirements (3)2.2. Hardware Requirements (3)Chapter 3. Installing NCCL (4)3.1. Ubuntu (4)3.2. RHEL/CentOS (5)3.3. Other Distributions (5)Chapter 4. Using NCCL (6)Chapter 5. Migrating From NCCL 1 To NCCL 2 (7)Chapter 6. Troubleshooting (9)6.1. Support (9)Chapter 1.OverviewThe NVIDIA® Collective Communications Library ™ (NCCL) (pronounced “Nickel”) is a libraryof multi-GPU collective communication primitives that are topology-aware and can be easily integrated into applications.Collective communication algorithms employ many processors working in concert to aggregate data. NCCL is not a full-blown parallel programming framework; rather, it is a library focused on accelerating collective communication primitives. The following collective operations are currently supported:‣AllReduce‣Broadcast‣Reduce‣AllGather‣ReduceScatterTight synchronization between communicating processors is a key aspect of collective communication. CUDA® based collectives would traditionally be realized through a combination of CUDA memory copy operations and CUDA kernels for local reductions. NCCL, on the other hand, implements each collective in a single kernel handling both communication and computation operations. This allows for fast synchronization and minimizes the resources needed to reach peak bandwidth.NCCL conveniently removes the need for developers to optimize their applications for specific machines. NCCL provides fast collectives over multiple GPUs both within and across nodes.It supports a variety of interconnect technologies including PCIe, NVLink™ , InfiniBand Verbs, and IP sockets. NCCL also automatically patterns its communication strategy to match the system’s underlying GPU interconnect topology.Next to performance, ease of programming was the primary consideration in the design of NCCL. NCCL uses a simple C API, which can be easily accessed from a variety of programming languages. NCCL closely follows the popular collectives API defined by MPI (Message Passing Interface). Anyone familiar with MPI will thus find NCCL API very natural to use. In a minor departure from MPI, NCCL collectives take a “stream” argument which provides direct integration with the CUDA programming model. Finally, NCCL is compatible with virtually any multi-GPU parallelization model, for example:‣single-threaded‣multi-threaded, for example, using one thread per GPUOverview ‣multi-process, for example, MPI combined with multi-threaded operation on GPUsNCCL has found great application in deep learning frameworks, where the AllReduce collective is heavily used for neural network training. Efficient scaling of neural network training is possible with the multi-GPU and multi node communication provided by NCCL.Chapter 2.Prerequisites2.1. Software RequirementsEnsure your environment meets the following software requirements:‣glibc 2.17 or higher‣CUDA 10.0 or higher2.2. Hardware RequirementsNCCL supports all CUDA devices with a compute capability of 3.5 and higher. For the compute capability of all NVIDIA GPUs, check: CUDA GPUs.Chapter 3.Installing NCCLIn order to download NCCL, ensure you are registered for the NVIDIA Developer Program.1.Go to: NVIDIA NCCL home page.2.Click Download.plete the short survey and click Submit.4.Accept the Terms and Conditions. A list of available download versions of NCCL displays.5.Select the NCCL version you want to install. A list of available resources displays. Refer tothe following sections to choose the correct package depending on the Linux distribution you are using.3.1. UbuntuInstalling NCCL on Ubuntu requires you to first add a repository to the APT system containing the NCCL packages, then installing the NCCL packages through APT. There are two repositories available; a local repository and a network repository. Choosing the latter is recommended to easily retrieve upgrades when newer versions are posted.1.Install the repository.‣For the local NCCL repository:sudo dpkg -i nccl-repo-<version>.deb‣For the network repository:sudo dpkg -i nvidia-machine-learning-repo-<version>.deb2.Update the APT database:sudo apt update3.Install the libnccl2 package with APT. Additionally, if you need to compile applicationswith NCCL, you can install the libnccl-dev package as well:Note: If you are using the network repository, the following command will upgrade CUDA tothe latest version.sudo apt install libnccl2 libnccl-devIf you prefer to keep an older version of CUDA, specify a specific version, for example: sudo apt install libnccl2=2.4.8-1+cuda10.0 libnccl-dev=2.4.8-1+cuda10.0Refer to the download page for exact package versions.Installing NCCL 3.2. RHEL/CentOSInstalling NCCL on RHEL or CentOS requires you to first add a repository to the YUM system containing the NCCL packages, then installing the NCCL packages through YUM. There are two repositories available; a local repository and a network repository. Choosing the latter is recommended to easily retrieve upgrades when newer versions are posted.1.Install the repository.‣For the local NCCL repository:sudo rpm -i nccl-repo-<version>.rpm‣For the network repository:sudo rpm -i nvidia-machine-learning-repo-<version>.rpm2.Update the YUM database:sudo yum update3.Install the libnccl2 package with YUM. Additionally, if you need to compile applicationswith NCCL, you can install the libnccl-devel package and optionally the libnccl-static package if you intend to link NCCL statically in your application:Note: If you are using the network repository, the following command will upgrade CUDA tothe latest version.sudo yum install libnccl libnccl-devel libnccl-staticIf you prefer to keep an older version of CUDA, specify a specific version, for example:sudo yum install libnccl-2.4.8-1+cuda10.0 libnccl-devel-2.4.8-1+cuda10.0 libnccl-static-2.4.8-1+cuda10.0Refer to the download page for exact package versions.3.3. Other DistributionsDownload the tar file package. For more information, see Installing NCCL.1.Extract the NCCL package to your home directory or in /usr/local if installed as root forall users:# cd /usr/local# tar xvf nccl-<version>.txz2.When compiling applications, specify the directory path to where you installed NCCL, forexample /usr/local/nccl-<version>/.Chapter ing NCCLUsing NCCL is similar to using any other library in your code. For example:1.Install the NCCL library onto your system.For more information, see Downloading NCCL.2.Modify your application to link to that library.3.Include the header file nccl.h in your application.4.Create a communicator.For more information, see Creating a Communicator in the NCCL Developer Guide.5.Familiarize yourself with the NCCL API documentation to maximize your usageperformance.Chapter 5.Migrating From NCCL 1 ToNCCL 2If you are using NCCL 1.x and want to move to NCCL 2.x, be aware that the APIs have changed slightly. NCCL 2.x supports all of the collectives that NCCL 1.x supports, but with slight modifications to the API.In addition, NCCL 2.x also requires the usage of the Group API when a single thread manages NCCL calls for multiple GPUs.The following list summarizes the changes that may be required in usage of NCCL API when using an application has a single thread that manages NCCL calls for multiple GPUs, and is ported from NCCL 1.x to 2.x:InitializationIn 1.x, NCCL had to be initialized using ncclCommInitAll at a single thread or having one thread per GPU concurrently call ncclCommInitRank. NCCL 2.x retains these two modes of initialization. It adds a new mode with the Group API where ncclCommInitRank can be called in a loop, like a communication call, as shown below. The loop has to be guarded by the Group start and stop API.ncclGroupStart();for (int i=0; i<ngpus; i++) {cudaSetDevice(i);ncclCommInitRank(comms+i, ngpus, id, i);}ncclGroupEnd();CommunicationIn NCCL 2.x, the collective operation can be initiated for different devices by making calls ina loop, on a single thread. This is similar to the usage in NCCL 1.x. However, this loop has tobe guarded by the Group API in 2.x. Unlike in 1.x, the application does not have to select the relevant CUDA device before making the communication API call. NCCL runtime internally selects the device associated with the NCCL communicator handle. For example:ncclGroupStart();for (int i=0; i<nLocalDevs; i++) {ncclAllReduce(..., comm[i], stream[i];}ncclGroupEnd();When using only one device per thread or one device per process, the general usage of API remains unchanged from NCCL 1.x to 2.x. Group API is not required in this case.Migrating From NCCL 1 To NCCL 2 CountsCounts provided as arguments are now of type size_t instead of integer.In-place usage for AllGather and ReduceScatterFor more information, see In-Place Operations in the NCCL Developer Guide. AllGather arguments orderThe AllGather function had its arguments reordered. The prototype changed from:ncclResult_t ncclAllGather(const void* sendbuff, int count, ncclDataType_t datatype, void* recvbuff, ncclComm_t comm, cudaStream_t stream);to:ncclResult_t ncclAllGather(const void* sendbuff, void* recvbuff, size_t sendcount,ncclDataType_t datatype, ncclComm_t comm, cudaStream_t stream);The recvbuff argument has been moved after the sendbuff argument to be consistent with all the other operations.DatatypesNew datatypes have been added in NCCL 2.x. The ones present in NCCL 1.x did not change and are still usable in NCCL 2.x.Error codesError codes have been merged into the ncclInvalidArgument category and have been simplified. A new ncclInvalidUsage code has been created to cover new programming errors.Chapter 6.Troubleshooting6.1. SupportRegister for the NVIDIA Developer Program to report bugs, issues and make requests for feature enhancements. For more information, see: https:///developer-program.Refer to the NCCL open source documentation for additional support.NoticeThis document is provided for information purposes only and shall not be regarded as a warranty of a certain functionality, condition, or quality ofa product. NVIDIA Corporation (“NVIDIA”) makes no representations or warranties, expressed or implied, as to the accuracy or completeness ofthe information contained in this document and assumes no responsibility for any errors contained herein. NVIDIA shall have no liability for the consequences or use of such information or for any infringement of patents or other rights of third parties that may result from its use. This document is not a commitment to develop, release, or deliver any Material (defined below), code, or functionality.NVIDIA reserves the right to make corrections, modifications, enhancements, improvements, and any other changes to this document, at any time without notice.Customer should obtain the latest relevant information before placing orders and should verify that such information is current and complete.NVIDIA products are sold subject to the NVIDIA standard terms and conditions of sale supplied at the time of order acknowledgment, unless otherwise agreed in an individual sales agreement signed by authorized representatives of NVIDIA and customer (“Terms of Sale”). NVIDIA hereby expressly objects to applying any customer general terms and conditions with regards to the purchase of the NVIDIA product referenced in this document. No contractual obligations are formed either directly or indirectly by this document.NVIDIA products are not designed, authorized, or warranted to be suitable for use in medical, military, aircraft, space, or life support equipment,nor in applications where failure or malfunction of the NVIDIA product can reasonably be expected to result in personal injury, death, or property or environmental damage. NVIDIA accepts no liability for inclusion and/or use of NVIDIA products in such equipment or applications and therefore such inclusion and/or use is at customer’s own risk.NVIDIA makes no representation or warranty that products based on this document will be suitable for any specified use. Testing of all parameters of each product is not necessarily performed by NVIDIA. It is customer’s sole responsibility to evaluate and determine the applicability of any information contained in this document, ensure the product is suitable and fit for the application planned by customer, and perform the necessary testing for the application in order to avoid a default of the application or the product. Weaknesses in customer’s product designs may affect the quality and reliability of the NVIDIA product and may result in additional or different conditions and/or requirements beyond those contained in this document. NVIDIA accepts no liability related to any default, damage, costs, or problem which may be based on or attributable to: (i) the use of the NVIDIA product in any manner that is contrary to this document or (ii) customer product designs.TrademarksNVIDIA, the NVIDIA logo, and cuBLAS, CUDA, CUDA Toolkit, cuDNN, DALI, DIGITS, DGX, DGX-1, DGX-2, DGX Station, DLProf, GPU, Jetson, Kepler, Maxwell, NCCL, Nsight Compute, Nsight Systems, NVCaffe, NVIDIA Deep Learning SDK, NVIDIA Developer Program, NVIDIA GPU Cloud, NVLink, NVSHMEM, PerfWorks, Pascal, SDK Manager, Tegra, TensorRT, TensorRT Inference Server, Tesla, TF-TRT, Triton Inference Server, Turing, and Volta are trademarks and/or registered trademarks of NVIDIA Corporation in the United States and other countries. Other company and product names may be trademarks of the respective companies with which they are associated.Copyright© 2020 NVIDIA Corporation. All rights reserved.。

Ia-32寄存器总结

Ia-32寄存器总结

EAX:累加寄存器ECX:计数寄存器,常用于计数EDX :数据寄存器,常用于数据传递EBX :基址寄存器,常用于地址索引ESP :ESP为堆栈指针,指向当前栈顶EBP :EBP为帧指针,当前活动记录的顶部ESI :变址寄存器,源地址指针,存储单元在段内的偏移量,EDI :变址寄存器目标地址指针EIP :指令寄存器,存放当前指令的下一条指令的地址ES:附加段寄存器CS:代码段寄存器SS:堆栈段寄存器DS:数据段寄存器FS:寄存器指向当前活动线程的TEB结构000 指向SEH链指针004 线程堆栈顶部008 线程堆栈底部00C SubSystemTib010 FiberData014 ArbitraryUserPointer018 FS段寄存器在内存中的镜像地址020 进程PID024 线程ID02C 指向线程局部存储指针030 PEB结构地址(进程结构)034 上个错误号GS:全局寄存器EFL:标志位寄存器,各标志位的含义如下图,DF:是控制标志位为方向标志,在串处理指令中控制处理信息的方向用。

当DF为1时,每次操作后使变址寄存器SI和DI减小,这样就使串处理从高地址向低地址方向处理。

当DF为0时相反.TF当TF被置为1时,CPU进入单步执行方式,即每执行一条指令,产生一个单步中断请求。

这种方式主要用于程序的调试ZF表示目的操作数结果为零AF表示(AL为一个字节)相加进行到一半(低4位)有没有向另一半(高4位)进位,也可以表示是否借位(减法)PF表示为偶数CF表示已经发生进位,也可以表示借位操作标志位寄存器汇编指令LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.浮点寄存器:(80位)ST0ST1ST2ST3ST4ST5ST6ST7FST :协处理器状态寄存器FCW:浮点控制寄存器具体参考/design/processor/manuals/253665.pdfMM0:多媒体指令寄存器MM1MM2MM3MM4MM5MM6MM7DR0 :调试寄存器DR1DR2DR3DR4DR5DR6DR7CR0:控制寄存器CR1CR2CR3CR4CR5CR6CR7TR0 :任务寄存器TR1TR2TR3TR4TR5TR6TR7XMM0:单指令,多数据寄存器FS:得到KERNEL32.DLL基址的方法assume fs:nothing ;打开FS寄存器mov eax,fs:[30h] ;得到PEB结构地址mov eax,[eax + 0ch] ;得到PEB_LDR_DA TA结构地址mov esi,[eax + 1ch] ;InInitializationOrderModuleListlodsd ;得到KERNEL32.DLL所在LDR_MODULE结构的InInitializationOrderModuleList地址mov edx,[eax + 8h] ;得到BaseAddress,既Kernel32.dll基址获得pted结构汇编代码TEB *pteb=NULL;__asm mov eax,fs:[18h]__asm mov pteb,eax对于协处理器中状态寄存器的内容,程序员可用指令FSTSW把其值送到内存单元中。

Linux 2.4 内核说明文档(引导篇)

Linux 2.4 内核说明文档(引导篇)

本篇文档目录:1.1. 创建Linux内核镜像1.2. 引导:概述1.3. 引导:BOIS POST1.4. 引导:bootsector和setup1.5. 采用LILO引导器1.6. 高级初始化1.7. SMP机在x86系统上引导1.8. 释放初始化数据和代码1.9. 处理内核命令以下是正文:1. 引导1.1. 创建Linux内核镜像本部分解释了编译内核时每个步骤以及每个步骤的输出。

这个创建过程依赖于不同的体系结构,这里强调一下我们仅考虑创建一个Linux x86的内核。

当用户输入“make zImage”或者“make bzImage”时,输出的可启动内核镜像就分别存放为arch/i386/boot/zImage或者arch/i386/boot/bzImage。

下面来看看这个镜像是怎么创建的:1) 首先C和汇编源文件被编译成ELF中间文件(.o),其中一部分按照逻辑分组打包成压缩文件(.a)。

2) 调用ld指令将以上的.o和.a文件被链接成一个静态的80386可执行文件vmlinux。

3) 接着调用nm vmlinux 指令剔除不相关和不感兴趣的符号并创建系统关系图。

4) 进入arch/i386/boot目录。

5) Bootsect.S文件按照目标是bzImage(zImage)在定义(不定义) –D_BIG_KERBEL_ 宏下进行预处理,结果分别存为bbootsect.s(bootsect.s)。

6) Bbootsect.s文件被编译并转换成“raw binary”格式的bbootsect文件(bootsect.s 被转换成“raw”格式文件bootsect)。

7) setup.s(setup.s 包含了video.s文件)被预处理成bzImage需要的bsetup.s或者zImage需要的setup.s文件。

这个过程和bootsector一样,bzImage镜像需要定义.D__BIG_KERNEL__宏,结果被转换成“raw binary”格式的bsetup,zImage镜像则被转换成“raw”格式的setup。

Moxa 通用 PCI 多端口串行板快速安装指南(第一版)说明书

Moxa 通用 PCI 多端口串行板快速安装指南(第一版)说明书

Universal PCI Smart Serial Board Quick Installation GuideFirst Edition, October 2017OverviewMoxa’s Universal PCI (UPCI) multiport serial boards can be installed in PCI or PCI-X slots and support both 3.3V and 5VPCI/PCI-X.Package ChecklistUFCI board are shipped with the following items:• 1 Moxa UPCI multiport serial board•Low-profile bracket (low-profile models only)•Documentation and software CD•Quick installation guide (printed)•Warranty cardNOTE Notify your sales representative if any of the above items are missing or damaged.Hardware Installation ProcedureThe Universal PCI board MUST be plugged into the PC before the driver is installed.Follow the steps below:1.Select serial transmission mode. This step is for certainmodels listed below.If your product on hand is not included, please directly go to step2.If your model is CP-112UL Series/ CP-114UL Series / CP-118U Series/ CP-132UL Series/ CP-134U Series/ CP-138U Series,you will need to set onboard DIP switches for each port.(Refer to “Dip Switch Settings” section to complete the DIP switches setting)2.Install the board. Power off the PC and then plug the boardfirmly into any open PCI or PCI-X expansion slot.3.Plug the connection cable into the board’s connector.(Refer to “Pin Assignments” section for the cable pinassignment).4.Start system and verify the driver initialization.Software Installation Information1.Get the driver at or from the CD. Basedon the OS type, choose the corresponding driver.2.Installing the driver:•For Windows OS (Take the installation of Win7 asan example)o 2.1. Unzip and execute the .exe fileo 2.2. Follow the instructions to install thedrivers•For LinuxExecute the following commands from the Linuxprompt:o 2.1. Get the driver from CD and Unzip thefile:#mount /dev/cdrom /mnt/cdrom#cd /#mkdir moxa#cd moxa#cp /mnt/cdrom/<driverdirectory>/mxser.tgz .#tar xvfz mxser.tgzo 2.2. Install the driver:#cd mxser#./mxinstallo 2.3. Verify the driver statusUse the Moxa diagnostic utility to verifythe driver status:#cd /moxa/mxser/utility/diag#./msdiago 2.4. Test the tty portUse the Moxa terminal utility to test thetty ports:#cd /moxa/mxser/utility/term#./mstermDIP Switch SettingsCP-112UL Series /CP-112UL-I SeriesMode S1 S2 S3RS-232 ON - -RS-422 OFF ON -4-Wire RS-485OFF OFF ON2-Wire RS-485OFF OFF OFFCP-114UL Series /CP-114UL-I SeriesMode S1 S2 S3RS-232 - - ONRS-422 - ON OFF4-Wire RS-485ON OFF OFF2-Wire RS-485OFF OFF OFFCP-118U Series /CP-118U-I SeriesMode S1 S2 S3RS-232 - - ONRS-422 ON OFF4-Wire RS-485ON OFF OFF2-Wire RS-485OFF OFFOFFCP-132UL SeriesMode S1 S2 IllustrationRS-422 - OFF2-Wire RS-485ON ON4-Wire RS-485OFF ONNCP-134U Series /CP-134U-I SeriesRS-422 or RS-485 mode:Use the jumper to cover thetwo columns on the left of thejumper pins.RS-232 mode: Use thejumper to cover the twocolumns on the right of thejumper pins.CP-138U Series /CP-138U-I Series Mode S1 S2RS-422 ON 4-Wire RS-485ON OFF 2-Wire RS-485OFF OFF Pin AssignmentsCP-102U SeriesMale DB9 RS-232Pin Signal1 DCD2 RxD3 TxD4 DTR5 GND6 DSR7 RTS8 CTSCP-102UL SeriesFemale DB25 RS-232Pin Signal Pin Signal1 - 14 -2 DCD1 15 DTR13 GND 16 DSR14 CTS1 17 RTS15 RxD1 18TxD16 - 19 -7 - 20 –8 - 21 DCD09 DTR0 22 GND10 DSR0 23 CTS011 RTS0 24 RxD012 TxD0 2513 - - - CP-104JU SeriesRJ45(RS-232)Pin Signal1 DSR2 RTS3 GND4 TxD5 RxD6 DCD7 CTS8 DTRCP-104ULMale DB25 (CBL-M44M25x4-50)Pin RS-2322 TxD3 RxD4 RTS5 CTS6 DSR7 GND8 DCD20 DTR(CBL-M44M9x4-50)(Opt4-M9A)Pin RS-2321 DCD2 RxD3 TxD4 DTR5 GND6 DSR7 RTS8 CTSRJ45(Opt4-RJ45A)Pin RS-2321 DSR2 RTS3 GND4 TxD5 RxD6 DCD7 CTS8 DTRCP-112UL-SeriesMale DB9 (CBL-M25M9x2-50)Pin RS-232 RS-422/RS-485-4WRS-485-2W1 DCD TxD-(A) -2 RxD TxD+(B) –3 TxD RxD+(B) Data+(B)4 DTR RxD-(A) Data+(A)5 GND GNDGND6 DSR--7 RTS - –8 CTS - -9 - - -CP-114UL SeriesMale DB9 (CBL-M44M9x4-50)Pin RS-232 RS-422/485-4W RS-485-2W1 DCD TxD-(A) –2 RxD TxD+(B) –3 TxD RxD+(B) Data+(B)4 DTR RxD-(A) Data-(A)5 GND GND GND6 DSR – –7 RTS – –8 CTS ––Male DB25 (CBL-M44M25x4-50)Pin RS-232 RS-422/RS-485-4WRS-485-2W2 TxD RxD+(B) Data+(B)3 RxD TxD+(B) –4 RTS – –5 CTS – –6 DSR – –7 GND GND GND8 DCD TxD-(A) –20 DTR RxD-(A) Data-(A)CP-118UI Series/CP-138U-I Series Male DB9 (CBL-M78M9x8-100)Pin RS-232* RS-422/RS-485-4WRS-485-2W1 DCD TxD-(A) –2 RxD TxD+(B) –3 TxD RxD+(B) Data+(B)4 DTR RxD-(A) Data-(A)5 GND GND GND6 DSR – –7 RTS – –8 CTS – –*CP-118U-I Series onlyMale DB25 (CBL-M78M25x8-100)Pin RS-232* RS-422/RS-485-4WRS-485-2W2 TxD RxD+(B) Data+(B)3 RxD TxD+(B) –4 RTS – –5 CTS – –6 DSR – –7 GND GND GND8 DCD TxD-(A) –20 DTR RxD-(A) Data-(A)*CP-118U-I Series only CP-118U Series/CP-138U SeriesMale DB9(CBL-M62M9x8-100, Opt8-M9 is for CP-118U and CP-138U)(CBL-M78M9x8-100 is for CP-118U-I and CP-138U-I)Pin RS-232 RS-422/RS-485-4WRS-485-2W1 DCD TxD-(A) –2 RxD TxD+(B) –3 TxD RxD+(B) Data+(B)4 DTR RxD-(A) Data-(A)5 GND GND GND6 DSR – –7 RTS – –8 CTS – –*CP-118U Series onlyMale DB25(CBL-M62M25x8-100, Opt8B is for CP-118U and CP-138U)(CBL-M78M25x8-100 is for CP-118U-I and CP-138U-I)Pin RS-232* RS-422/RS-485-4WRS-485-2W2 TxD RxD+(B) Data+(B)3 RxD TxD+(B) –4 RTS – –5 CTS – –6 DSR – –7 GND GND GND8 DCD TxD-(A) –20 DTR RxD-(A) Data-(A)*CP-118U Series onlyFemale DB25 (OPT8A/S)Pin RS-232 RS-422/RS-485-4WRS-485-2W2 RxD TxD+(B) –3 TxD RxD+(B) Data+(B)4 CTS – –5 RTS – –6 DTR RxD-(A) Data-(A)7 GND GND GND8 DCD TxD-(A) –20 DSR – –*CP-118U Series onlyRJ45 (opt8-RJ45)Pin Signal*1 DSR2 RTS3 GND4 TxD5 RxD6 DCD7 CTS8 DTR*CP-118U Series onlCP-132UL Series/CP-132UL-I SeriesMale DB9 Connector: Device-side Pin AssignmentsPinRS-422RS-485-4W RS-485-2W1 TxD-(A) TxD-(A) –2 TxD+(B) TxD+(B) –3 RxD+(B) RxD+(B) Data+(B)4 RxD-(A) RxD-(A) Data-(A)5 GND RxD-(A) GND6 RTS-(A) GND –7 RTS+(B) – –8 CTS+(B) – –9 CTS-(A) ––/supportThe Americas:+1-714-528-6777 (toll-free: 1-888-669-2872)Europe: +49-89-3 70 03 99-0 Asia-Pacific: +886-2-8919-1230China: +86-21-5258-9955 (toll-free: 800-820-5036)2017 Moxa Inc. All rights reserved.CP-134U SeriesMale DB9 (CBL-M44M9x4-50)Pin RS-232 RS-422/ RS-485- 4W RS-485-2W 1 DCD TxD-(A) TxD-(A) – 2 RxD TxD+(B)TxD+(B) –3 TxD RxD+(B) RxD+(B) Data+(B) 4 DTR RxD-(A) RxD-(A) Data–(A)5 GND GND GND GND6 DSR RTS-(A) –7 RTS RTS+(B) –8 CTSCTS+(B) –9CTS-(A)Male DB25 (CBL-M44M25x4-50)Pin RS-232 RS-422/ RS-485- 4W RS-485-2W 2 TxD RxD+(B) RxD+(B) Data+(B)3 RxD TxD+(B) TxD+(B) –4 RTS RTS+(B) - -5 CTS CTS+(B) - -6 DSR RTS-(A) - -7 GND GND GNDGND8DCDTxD-(A) TxD-(A) – 20 DTR RxD-(A) RxD-(A) Data-(A)22 -CTS-(A)- -CP-168U SeriesRS-232 Cable Wiring for Opt8A/B/C/D/S OPT8A/S(DCE, DB25 Female) PinSignal 2 RxD 3 TxD 4 CTS 5 RTS 6 DTR 7 GND 8 DCD 20DSROPT8-RJ45 (8-pin) PinSignal 1 DSR 2 RTS 3 TxD 4 GND 5 RxD 6 DCD 7 CTS 8DTROPT8B/C (DCE, DB25 Male) PinSignal 2 TxD 3 RxD 4 RTS 5 CTS 6 DSR 7 GND 8 DCD 20DTROPT8-M9, Opt8D(DTE, DB9 Male) Pin Signal 1 DCD 2 RxD 3 TxD 4 DTR 5 GND 6 DSR 7 RTS 8CTSRS-422 Cable Wiring for Opt8FOPT8F/Z(DB25 Female) Pin Signal 2 RxD+(B) 3 TxD+(B) 14 RxD-(A) 16 TxD-(A) 7GNDRS-422/485 Cable Wiring for Opt8KRS-422/RS-485-4WRS-485-2W Pin Signal Pin Signal 2 RxD+(B) 2 Data+(B) 3 TxD+(B) 14 Data-(A) 14 RxD-(A) 7 GND16 TxD-(A) 7 GNDPOS-104UL SeriesMale D89(CBL-M44M9x4-50) Pin RS-232 1 DCD 2 RxD 3 TxD 4 DTR 5 GND 6 DSR 7 RTS 8 CTS9 RI/5V/12V。

君正 Linux 2.4 开发手册

君正 Linux 2.4 开发手册

君正Linux 2.4开发手册Revision: 1.2Date: Jan. 2008君正Linux 2.4开发手册Copyright © Ingenic Semiconductor Co. Ltd 2006. All rights reserved.Release historyDate Revision ChangeJan. 2008 1.2 Add description to section overviewNov. 2007 1.1 Modify NAND flash filesystem descriptionAdd mplayer demo descriptionAdd guide to start the TFTP and NFS serversMay. 2007 1.0 First releaseDisclaimerThis documentation is provided for use with Ingenic products. No license to Ingenic property rights is granted. Ingenic assumes no liability, provides no warranty either expressed or implied relating to the usage, or intellectual property right infringement except as provided for by Ingenic Terms and Conditions of Sale.Ingenic products are not designed for and should not be used in any medical or life sustaining or supporting equipment.All information in this document should be treated as preliminary. Ingenic may make changes to this document without notice. Anyone relying on this documentation should contact Ingenic for the current documentation and errata.北京君正集成电路有限公司北京市海淀区上地东路1号盈创动力E座801CTel: 86-10-58851002Fax: 86-10-58851005Http: //内容内容1概述 (1)2开发环境 (3)2.1安装交叉编译工具链 (3)2.2启动TFTP和NFS服务 (4)3Linux内核和驱动 (5)3.1Linux的目录结构 (5)3.2配置和编译Linux (6)3.3Linux配置选项 (7)4Linux根文件系统 (13)4.1根文件系统的内容 (13)4.2制作根文件系统 (13)4.2.1配置和编译BusyBox (13)5测试Linux内核和驱动 (16)5.1运行Linux内核 (16)5.2测试Linux设备驱动 (16)6NAND Flash文件系统 (19)6.1NAND Flash文件系统类型 (19)6.2MTD分区 (19)6.3创建NAND Flash文件系统 (20)7Linux电源管理 (22)7.1动态电源管理 (22)7.2系统睡眠和唤醒 (24)概述1 概述本文将向读者详细介绍基于君正处理器平台进行Linux 2.4内核开发的过程和方法,引导开发人员快速进行Linux开发,包括建立交叉编译环境、引导程序和Linux内核的配置和编译、设备驱动的测试和使用、根文件系统等等。

acpi 学习笔记

acpi 学习笔记

ACPI学习笔记 - 不断修订中-last updated on Oct 15刚起步, 3.0b规范还只看了一部分,本文档对别人应该没什么意义,只是记录我的学习过程而已。

肯定有大量误解,欢迎BUG FIXING。

/*** file : ACPI Notes with Linux.txt* AUTHOR : albcamus <albcamus@>* Copyright : GNU FDL(Free Documentation License)* XXX : continuously correcting and improving*/TERMINOLOGY:===========I.) TABLES OF ACPISDTH : System Description Table Header(注意这个不是Table,它是每个Table都包含的头)RSDP : Root System Description Pointer('RSD PTR')RSDT : Root System Description Table(signature is 'RSDT')FADT : Fixed ACPI Description Table('FACP')FACS : Firmware ACPI Control Structure('FACS')DSDT : Differentiated System Description Table('DSDT')PSDT : Persistent System Description Table('PSDT'). 注意它是ACPI Spec-1.0定义的,早已被移除。

SSDT : Secondary System Description Table('SSDT')MADT : Multipile ACPI Description Table('APIC')SBST : Smart Battery Table('SBST')XSDT : Extended System Description Table('XSDT')ECDT : Embedded Conroller Boot Resources Table('ECDT')SLIT : System Locality Distance Information Table('SLIT')SRAT : System Resource Affinity Table('SRAT')MCFG : PCI-Memory Mapped Configuration table and sub-table('MCFG')SPCR : Serial Port Console Redirection table('SPCR')BERT : Boot Error Record Table('BERT')SBFT : Simple Boot Flag Table('BOOT')CPET? : Corrected Platform Error Polling Table('CPEP')DBGT? : Debug Port Table('DBGP')DMAT? : DMA Remapping Table('DMAR')TCPT? : Trusted Computing Platform Alliance Table('TCPA')WDRT : Watchdog Resource Table('WDRT')ASFT? : Alert Standard Format Table('ASF!')具体见ACPI规范3.0b的Table 5-6. 这里只是一部分。

broadcom 驱动 linux 释放说明 14.0.326.25-14.0.326.14说明书

broadcom 驱动 linux 释放说明 14.0.326.25-14.0.326.14说明书

Release NotesPurpose and Contact InformationThese release notes describe the new features, resolved issues, FC and NVMe driver known issues, and FC and NVMe technical tips associated with this release of the Emulex ® drivers for Linux.For the latest product documentation, go to . If you have questions or require additional information, contact an authorized Broadcom ® Technical Support representative at *****************************.New FeaturesRelease 14.0.326.25There are no new features in this release.Release 14.0.326.19Added support for the RHEL 8.5 operating system.Release 14.0.326.14⏹Added LPe35000-series and LPe36000-series adapters support for Arm on RHEL 8.x and Ubuntu 20.04 operating systems. ⏹Added support to the fcping command to ping other nodes in a zone without having to log in. ⏹Added support for NVMe storage as a kdump device during boot from SAN (BFS) operation. ⏹Introduced the lpfc_fcp_wait_abts_rsp driver parameter to enable or disable quick abort behavior. ⏹Synchronized the HostNQN and Host values between the operating system driver and the UEFI configuration utility. ⏹Discontinued support for LPe12000-series, LPe15000-series, and LPe16000-series adapters. ⏹Discontinued support for the following operating systems: –RHEL 7.7–RHEL 8.1 –SLES 15 SP1⏹Disabled the elx-lpfc-vector-map.sh script in the RHEL 7 driver RPM package.Emulex ® Drivers for LinuxRelease 14.0.326.25⏹The following changes were made to NVMe:–Added support to create the HostNQN and HostID using the system UUID.–Discontinued support for creating a HostNQN based on the adapter WWPN.–Added support for reading, writing, and dumping EFI variables NvmeHostNQN and NvmeHostID.–Added support for the NVMe BFS kit on SLES 15 SP3 and RHEL 8.4 operating systems.NOTE:Since the nvmefc-dm features are now inbox in SLES 15 SP3, you do not need to use the NVMe BFS kit on SLES15 SP3 to BFS. However, if the operating system installer determines that the system UUID is not random enoughand silently generates a new UUID, you must use the NVMe BFS kit to resolve the issue.Resolved IssuesRelease 14.0.326.25On the SLES 12 SP2 operating system with a multiport HBA, using FC inbox driver version 12.8.0.10 or FC out-of-box driver 14.0.326.x, the issue of targets being discovered on only one port is resolved.Release 14.0.326.19There are no resolved issues in this release.Release 14.0.326.14⏹On the CentOS 8 operating system, the driver installer script no longer fails to determine the distribution and version.⏹HBA reset no longer causes the congestion buffer to be reset. Both congestion buffer information and statistics arepreserved across reset.FC Driver Known Issues1.On Red Hat Virtualization (RHV) 4.4, dracut does not add the lpfc driver configuration file to initramfs.Workarounda.Edit the /usr/lib/dracut/dracut.conf.d/02-generic-image.conf file.b.Add a # before the hostonly=no string to comment out the entry.c.Rebuild the initramfs using dracut.2.On RHEL 8.4 inbox drivers, diagnostic loopback tests always fail and might result in a timeout error.WorkaroundInstall any RHEL 8.4 supported out-of-box driver version.3.There is a change to the value specified for the driver parameter lpfc_log_verbose in Step 5 in Section 2.5 Updatingthe Firmware. For details, refer to the Emulex Drivers for Linux User Guide4.An unrecoverable operating system fault might occur when generating a crash dump after successful installation of theSLES 15 SP2 operating system on a local device or an FC BFS LUN.WorkaroundInstall the SUSE maintenance update dracut-049.1+suse.183.g7282fe92-3.18.2.x86_64.rpm orlater.Release 14.0.326.25Release 14.0.326.25NVMe Driver Known Issues1.Unloading the Fibre Channel Protocol (FCP) driver using the modprobe -r command might cause issues on the initiatorbefore NVMe devices are disconnected.WorkaroundUnload the driver with rmmod lpfc, or if modprobe –r lpfc is required, wait for the device loss period of 60 seconds before unloading the driver.2.On RHEL 7.8 inbox drivers with NVMe targets connected to the port, when the firmware is upgraded, the No host rebootrequired to activate new firmware feature might not work as intended.WorkaroundIf the new firmware is not activated, reload the driver or reboot the system.3.On the Oracle Linux 7.7 unbreakable enterprise kernel (UEK) R6 operating system, unloading a Linux FCP driver withNVMe connections might fail.WorkaroundDisconnect the NVMe connections before unloading the Linux FCP driver.4.When performing a clean operating system installation of RHEL 8.2 and loading the nvme-cli RPM from the ISO, thedefault hostid and hostnqn values are the same on multiple servers.WorkaroundUpdate the nvme-cli utility to version 1.10.1-1.el8 or later.5.On an NVMe controller, reconnectivity issues may occur during switch port toggles. This issue is an operating systemissue.WorkaroundContact Red Hat or SUSE technical support.6.In the fstab file, when an NVMe namespace mount point entry is included and the defaults option is specified, if theoperating system is rebooted, the operating system might go into emergency mode.WorkaroundsFor SLES15 SP3:Specify nofail as the mount option when creating the NVMe namespace fstab mount point entry.For RHEL7.x, SLES 12 SP5, SLES 15 SP2, and RHEL8.x:–Specify nofail as the mount option when creating the NVMe namespace fstab mount point entry.–Install the nvmf boot dracut module provided in the nvmefc-dm kit.7.The SLES 15 SP3 installer might not discover the NVMe namespace to install the operating system.WorkaroundUse the nvmefc-dm kit to discover the NVMe namespace.8.During RHEL 7.x and RHEL 8.2 installation, the operating system reports an error while attempting to add an UEFI bootentry. This issue is an operating system issue and has been reported to Red Hat.NOTE:This issue is specific to NVMe BFS.WorkaroundIgnore the warning prompt and continue the installation. On the first reboot, use the server UEFI menu to select the adapter port that is attached to the fabric to boot the operating system.9.On SLES 12 SP5, the nvmefc-boot-connections systemd unit is disabled after the operating system is installedusing NVMe BFS. This issue leads to the operating system failing to discover all NVMe subsystems when a large number of NVMe subsystems exist.WorkaroundManually enable the nvmefc-boot-connections systemd unit. See NVMe Driver Technical Tips, Item6, for more information.10.An unrecoverable operating system fault might occur when generating a crash dump after successful installation of theoperating system in the NVMe BFS namespace.WorkaroundFrom the NVMe BFS kit, extract and install the nvmefc-dm RPM that matches the installed operating system.# tar zxf elx-nvmefc-dm-<version>-<release>/nvmefc-dm-<version>-<release>.<OS>.tar.gz11.If the operating system was installed using NVMe over FC BFS, and you are updating the firmware from version12.8.xxx.xx to version 14.0.xxx.xx, NVMe storage might not be found, and the UEFI boot menu might not boot theoperating system.WorkaroundIn the UEFI configuration utility, enable the Generate and use a Port Based HostNQN option. Refer to the Emulex Boot for the Fibre Channel and NVMe over FC Protocols User Guide for details.12.If the operating system was installed using NVMe over FC BFS, and you are updating the firmware from version14.0.xxx.xx to version 12.8.xxx.xx, NVMe storage might not be found, and the UEFI boot menu might not boot theoperating system.WorkaroundUpdate the SAN storage configuration and add an adapter WWPN-based HostNQN to the storage array.FC Driver Technical Tips1.For secure boot of the RHEL operating system, download the public key file for the RHEL operating system from, and place it in the systems key ring before installing the signed lpfc driver for the RHEL operating system. Refer to the Red Hat documentation for instructions on adding a kernel module to the system.2.On Red Hat operating systems, the installer automatically searches for a driver update disk (DUD) on a storage volumelabeled OEMDRV. For details, refer to the Red Hat documentation.3.Out-of-box Linux driver builds are built on, and are intended to be run on, general availability (GA) kernels for theirrespective distributions. If you need an out-of-box Linux driver build for a subsequent distribution’s errata kernel, you might need to recompile the driver from the Linux driver source file on the errata kernel.NVMe Driver Technical Tips1.Creation of N_Port ID Virtualization (NPIV) connections on initiator ports that are configured for NVMe over FC is notsupported. However, initiator ports can connect to FCP and NVMe targets simultaneously.2.NVMe disks might not reconnect after a device timeout greater than 60 seconds has occurred.WorkaroundYou must perform a manual scan or connect using the nvme connect-all CLI command.3.To manually scan for targets or dynamically added subsystems, type the following command (all on one line):nvme connect-all --transport=fc --host-traddr=nn-<initiator_WWNN>:pn-<initiator_WWPN>--traddr=nn-<target_WWNN>:pn-<target_WWPN>where:–<initiator_WWNN> is the WWNN of the initiator, in hexadecimal.–<initiator_WWPN> is the WWPN of the initiator, in hexadecimal.–<target_WWNN> is the WWNN of the target, in hexadecimal.–<target_WWPN> is the WWPN of the target, in hexadecimal.For example:# nvme connect-all --transport=fc --host-traddr=nn-0x20000090fa942779:pn-0x10000090fa942779 --traddr=nn-0x20000090fae39706:pn-0x10000090fae397064.To enable autoconnect on the following operating systems, install nvme-cli from the operating system distributionmedia:–RHEL 8.3–RHEL 8.2–SLES 15 SP2–SLES 12 SP55.If the following files are present on the system after the operating system is installed, the operating system has alreadyinstalled NVMe over FC autoconnect facilities. Do not install the Emulex autoconnect script file for inbox NVMe over FC drivers.–/usr/lib/systemd/system/nvmefc-boot-connections.service–/usr/lib/systemd/system/nvmefc-connect@.service–/usr/lib/udev/rules.d/70-nvmefc-autoconnect.rules6.Enable nvmefc-boot-connections to start during boot.Use systemctl enable to enable the nvmefc-boot-connections systemd unit to start during boot.# systemctl enable nvmefc-boot-connectionsCreated symlink /etc/systemd/system/default.target.wants/nvmefc-boot-connections.service ? /usr/ lib/systemd/system/nvmefc-boot-connections.service.7.Back up the initial ramdisk before upgrading the operating system.During an operating system upgrade, the kernel or nvme-cli might be upgraded. Back up the initial ramdisk before upgrading the operating system to ensure that the operating system is still bootable in the event that NVMe BFS fails due to a change in either the kernel or nvme-cli.Change the directory to /boot, and make a copy of the initial ramdisk.Example for SUSE operating systems:# cd /boot# cp initrd-$(uname -r) initrd-$(uname -r).bakExample for Red Hat operating systems:# cd /boot# cp initramfs-$(uname -r).img initramfs-$(uname -r).img.origCopyright © 2022 Broadcom. All Rights Reserved. The term “Broadcom” refers to Broadcom Inc. and/or its subsidiaries. For more information, go to . All trademarks, trade names, service marks, and logos referenced herein belong to their respective companies.Broadcom reserves the right to make changes without further notice to any products or data herein to improve reliability, function, or design. Information furnished by Broadcom is believed to be accurate and reliable. However, Broadcom does not assume any liability arising out of the application or use of this information, nor the application or use of any product or circuit described herein, neither does it convey any license under its patent rights nor the rights of others.。

华为认证ICT专家HCIE考试(习题卷26)

华为认证ICT专家HCIE考试(习题卷26)

华为认证ICT专家HCIE考试(习题卷26)第1部分:单项选择题,共51题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]ManageOne Operation Center不支持以下哪种拓扑查看方式?A)物理位置拓扑B)VDC拓扑C)服务应用拓扑D)VPC拓扑答案:D解析:2.[单选题]在创建华为桌面云 Linux 基础架构虚拟机时,下面描述不正确的是?A)网卡类型建议选择“virtio”。

B)如果虚拟机主备部署,两台虚拟机建议部署在管理集群的不同CNA节点上。

C)选择存储资源时,建议使用高性能存储,不要使用NL SAS 或 SATA等低性能存储。

D)选择存储资源时,可以选择通过 SSD卡、U盘等映射的数据存储资源。

答案:D解析:3.[单选题]保证数据及实例安全操作中,下列哪种方式不合理()。

A)使用最小权限访问B)修改数据库默认端口号C)限制远程主机的访问范围D)拒绝数据库访问答案:D解析:4.[单选题]现有一台虚拟机需要部署某业务,该业务I/O均为随机小/O,对IOPS要求比较高。

虚拟机推荐采用哪种类型磁盘A)普通磁盈B)普通延退至零磁盘C)精筒磁盘D)差分卷答案:A解析:5.[单选题]RSTP为什么收敛比802.1D 要快?A)它是个更新的协议B)它的计时器时间短C)系统开销小D)它不是基于计时器的(触发式)答案:D解析:6.[单选题]当Fusionaccess桌面组类型为“静态池”时,不包含以下哪个虚拟机类型?A)链接克隆D)全内存答案:D解析:7.[单选题]Rainbow 迁移工具的使用流程是怎么样的?A)创建目的 VM >安装托移工具>数据迁移>数据同步B)安装迁移工具>创建目的 VM >数据迁移>数据同步C)安装迁移工具>创建目的 VM >数据同步>数据迁移D)创建目的 VM >安装迁移工具>数据同步>数据迁移答案:B解析:8.[单选题]keepalived的配置文件中使用什么表示主服务器?A)BACKUPB)MAIINC)SLAVED)MASTER答案:D解析:9.[单选题]安装 FusionAccess 管理组件时,创建完Linux 基础架构裸虚拟机后,对设置虚拟机自恢复尾性的操作描述,不正确的是?A)只需要对ITA组件所在的虚拟机设置虚拟机自恢复属性操作。

linux系统救援模式解决开机引导失败问题

linux系统救援模式解决开机引导失败问题

linux系统救援模式解决开机引导失败问题问题:linux开机后进⼊grub命令⾏且grub命令⾏输⼊命令报错推测:因之前系统装好以后改变过分区,⽽导致不能读取到grub主开机引导程序在解决这个问题之前我们先来了解linux开机启动过程。

linux系统开机启动有以下过程:1.开机加载BIOS2.进⼊MBR(master boot record)主引导记录:MBR中主要是安装加载引导程序,如主流的grub(既⽀持win也⽀持linux)。

它是可引导设备的第⼀个扇区(⼀般情况下是硬盘中的第⼀扇区)中的主引导分区3.读取运⾏grub主引导程序:grub主要是识别磁盘格式,⽤于载⼊并启动操作系统核⼼(Kernel)。

多操作系统时可以通过配置grub⽽引导系统启动。

4.启动init进程完成系统启动;据我所知有两种⽅式init⽅式。

System V initialization⽅式和Upstart⽅式。

(具体⽅式的运⾏模式⾃⾏百度) linux开机引导过程⼤致分为以上⼏步。

知道了开机启动⼤致过程,我们针对遇到的问题可以判断问题出在grub主引导程序上。

下⾯我们将使⽤系统盘进⼊linux救援模式修复grub引导程序。

1.放⼊linux装机光盘并选择以光盘启动2.选择Rescue installed system 救援模式进⼊3.语⾔选择默认英语,键盘选择us4.根据需要选择是否联⽹,这⾥不需要联⽹5.进⼊到Rescue界⾯,如果选择Continue按钮并回车则救援模式程序会⾃动查找系统中已有的⽂件系统,并把他们挂载到/mnt/sysimage⽬录下;如果选择Read-Only并回车,则会以只读的⽅式挂载已有的⽂件系统,如果需要⼿动挂载则选Skip6.之后有三种模式选择我们选择进⼊shell模式并根据之前提⽰输⼊chroot /mnt/sysimage命令(fakd为诊断模式)7.输⼊grub进⼊grub命令⾏8.在grub命令⾏中输⼊:root(hdx,y) 其中x为安装linux根分区所在的盘,⽐如只有⼀个硬盘那x就是0,linux根分区在第⼆个硬盘上x就为1. 其中y为安装linux系统所在的根分区 我这⾥输⼊的是root(hd0,0)9.输⼊setup(hd0)setup(hd0)就是把grub写⼊到硬盘的MBR上,显⽰succeeded就说明写⼊修复成功。

Linux常见问题

Linux常见问题

Linux‎常见问题0050linux‎怎么用这么‎多内存为了提高系‎统性能和不‎浪费内存,linux‎把多的内存‎做了cac‎h e,以提高io‎速度0051FSTAB‎最后的配置‎项里边最后‎两个数字是‎什么意思(lnx30‎00)第一个叫f‎s_fre‎q,用来决定哪‎一个文件系‎统需要执行‎d ump操‎作,0就是不需‎要;第二个叫f‎s_pas‎s no,是系统重启‎时fsck‎程序检测磁‎盘的顺序号‎1 是root‎文件系统,2 是别的文件‎系统。

fsck按‎序号检测磁‎盘,0表示该文‎件系统不被‎检测dump 执行ext‎2的文件系‎统的备份操‎作fsck检测和修复‎文件系统0052linux‎中让用户的‎密码必须有‎一定的长度‎,并且符合复‎杂度(eapas‎s)vi /etc/login‎.defs,改P??牴???? ?ASS_M‎I N_LE‎N0053linux‎中的翻译软‎件星际译王xdict‎0054不让显示器‎休眠sette‎r m -blank‎0sette‎r m -blank‎n (n为等待时‎间)0055用dat查‎询昨天的日‎期(gadfl‎y)date --date=yeste‎r day0056xwind‎o w下如何‎截屏Ksnap‎s hot或‎者gimp‎0057解压小全tar xvfj examp‎l e.tar.bz2tar xvfz examp‎l e.tar.gztar xvfz examp‎l e.tgztar xvf examp‎l e.tarunzip‎examp‎l e.zip0058在多级目录‎中查找某个‎文件的方法‎(青海湖)find /dir -name filen‎a me.extdu -a | grepfilen‎a me.extlocat‎e filen‎a me.ext0059不让普通用‎户自己改密‎码(myxfc‎)[root@xin_f‎c etc]# chmod‎511 /usr/bin/passw‎d又想让普通‎用户自己改‎密码[root@xin_f‎c etc]# chmod‎4511 /usr/bin/passw‎d0060显卡实在配‎不上怎么办‎(win_b‎i gboy‎)去http://www.redfl‎a g-linux‎.com/,下了xfr‎e e86 4.3安装就可‎以了.0061超强删除格‎式化工具(弱智)比PQMa‎g ic安全‎的、建立删除格‎式化的小工‎具:sfdis‎k.exe for msdos‎http://www.wushu‎a /soft/sfdis‎k.zip0062如何让xm‎m s播放列‎表里显示正‎确的中文(myxfc‎)-*-*-*-*-*-iso88‎59-1,-misc-simsu‎n-mediu‎m-r-norma‎l--12-*-*-*-*-*-gbk-0,*-r-把这个东西‎完全拷贝到‎你的字体里‎面操作方法:右键单击x‎m ms播放‎工具的任何‎地方会看到一个‎"选项",然后选择"功能设定"选择"fonts‎"然后把上面‎的字体完整‎的拷贝到"播放清单"和"user x font0063linux‎下听MP3‎(hehhb‎)redha‎t光盘原带‎的xmms‎不能播放M‎P3(无声), 要下载安装‎一个RPM‎包:xmms-mp3-1.2.7-13.p.i386.rpm安装‎即可.打开xmm‎s,ctl-p,在font‎栏中先在上半部‎的小框内打‎勾,再选择“fixed‎(misc) gbk-0‎13”号字体即可显示‎中文歌曲名‎。

Linux系统引导过程及排除启动故障

Linux系统引导过程及排除启动故障

Linux系统引导过程及排除启动故障⼀、Linux操作系统引导过程⼆、系统初始化进程1、init进程2、Systemd3、Systemd单元类型三、排除启动类故障【1】、修复MBR扇区故障(含实验过程)【2】、修复GRUB引导故障●⽅法⼆:进⼊急救模式,恢复GRUB引导程序(与MBR 引导扇区类似)●⽅法三:引导界⾯进⼊急救模式,重建GRUB菜单配置⽂件⽅案三实验四、遗忘root⽤户的密码实验过程⼀、Linux操作系统引导过程1.开机⾃检服务器主机开机以后,将根据主板BIOS中的设置对CPU、内存、显卡、键盘等设备进⾏初步检测,检测成功后根据预设的启动顺序移交系统控制权,⼤多时候会移交给本机硬盘。

总结:检测出第⼀个能够引导系统的设备,⽐如硬盘或者光驱2.MBR 引导当从本机硬盘中启动系统时,⾸先根据硬盘第⼀个扇区中MBR(主引导记录)的设置,将系统控制权传递给包含操作系统引导⽂件的分区;或者直接根据MBR 记录中的引导信息调⽤启动菜单(如 GRUB)。

总结:运⾏放在MBR扇区⾥的启动GRUB引导程序3.GRUB 菜单对于Linux操作系统来说,GRUB(统⼀启动加载器)是使⽤最为⼴泛的多系统引导器程序。

系统控制权传递给GRUB以后,将会显⽰启动菜单给⽤户选择,并根据所选项(或采⽤默认值)加载Linux内核⽂件,然后将系统控制权转交给内核。

CentOS 7 采⽤的是 GRUB2 启动引导器。

总结:GRUB引导程序通过读取GRUB配置⽂件/boot/grub2/grub.cfg,来获取内核和镜像⽂件系统的设置和路径位置4.加载 Linux 内核Linux内核是⼀个预先编译好的特殊⼆进制⽂件,介于各种硬件资源与系统程序之间,负责资源分配与调度。

内核接过系统控制权以后,将完全掌控整个Linux操作系统的运⾏过程。

CentOS 7系统中,默认的内核⽂件位于“/boot/vmlinuz-3.10.0-514.el7.x86_64”。

Linux内核初始化流程笔记

Linux内核初始化流程笔记

分类: LINUXgfree.wind@gmail博客: 本文的copyleft归gfree.wind@gmail所有,利用GPL发布,能够自由拷贝,转载。

但转载请维持文档的完整性,注明原作者及原链接,严禁用于任何商业用途。

===================================================== =================================================如前文的流程,bootloader将kerenel加载到内存中。

全数引导进程是四步1:boot PROM phase2:boot Programs phase3:kernel initialization phase4:init phasesystem初始化,检测和,检查设备和创建设备树,设置consolekernel初始化进程kernel self -initialization 内核自检loading of kernel modules 载入内核模块reading of the kernel configuration file in /etc/system 读内核配置文件staring of the /sbin/init process 运行/sbin/init进程bootblk是用于装载第二个引导程序ufsboot的主引导程序bootblk是被PROM的boot设备的引导扇区装载的ufsboot程序是用了装载两部份核心genunix和unix的installboot是用来在磁盘分区上安装bootblk的genunix is the platform-independent generic kernel file ,while unix is the platform-specific kernel component.整个的引导进程:PROM from the boot sector of the boot device-->bookblk-->ufsboot-->genunix(是一个独立平台的一般内核文件) and unix(是一个特殊平台内核文件)-->其它那个地址加载的kernel镜像,并非是真正的可执行文件,而是一个紧缩的镜像文件。

linux 重启 关机 代码流程

linux 重启 关机 代码流程

linux 重启关机代码流程## English Answer:### Shutdown Process.When the shutdown command is executed, it initiates a sequence of steps to gracefully halt the operating system and prepare the system for power-off. Here's a simplified overview of the shutdown process:1. Signal Initialization: The shutdown command sends a SIGTERM and SIGHUP signal to running processes, giving them an opportunity to terminate gracefully and save any necessary data.2. Process Termination: Processes receiving the SIGTERM signal terminate their operations and release any resources they hold. Essential system services, such as the init process, may be configured to ignore SIGTERM and continue running.3. Unclean Process Handling: If a process fails to terminate after receiving SIGTERM, a SIGKILL signal is sent to force the process to terminate.4. File System Quiescing: The operating system ensures that all file system buffers are flushed to disk and any pending disk writes are completed. This prevents data loss during the shutdown process.5. Unmount Filesystems: The shutdown process unmounts all filesystems except the root filesystem, which prevents further file accesses and ensures a clean shutdown.6. Power-Off Preparation: Once all processes are terminated and filesystems are unmounted, the system prepares for power-off. This may involve shutting down hardware devices, such as network adapters and peripherals.7. System Halt: Finally, the operating system initiatesa system halt, which involves stopping all running processes and powering down the system.### Reboot Process.The reboot process shares some similarities with the shutdown process, but it additionally involves restarting the operating system after power-off. Here's a brief outline of the reboot process:1. Shutdown Initiation: The reboot command initiates the same shutdown process as described above, gracefully terminating processes and unmounting filesystems.2. Power-Off Preparation: As in the shutdown process, devices are shut down, and the system prepares for power-off.3. System Power-Off: The system powers down, cutting off power to all hardware components.4. Power-On and BIOS: When power is restored, the system goes through the power-on self-test (POST) and executes the BIOS routines.5. Boot Loader: The BIOS transfers control to the boot loader, which typically resides in a dedicated partition on the hard drive.6. Operating System Loading: The boot loader loads the operating system kernel into memory and starts the initialization process.7. System Startup: The operating system kernel initializes hardware devices, mounts filesystems, andstarts essential services.## 中文回答:### 关机流程。

HP Network Node Manager i-series 8.01 系统要求和支持设备 Ma

HP Network Node Manager i-series 8.01 系统要求和支持设备 Ma

HP Network Node Manager i-series Support MatrixSoftware Version:8.01This document provides an overview of the system requirements and supported devices for HP Network Node Manager Software version8.01.For the latest updates to the system requirements and device support,see sg-pro-/nnm/NNM8.01/SupportMatrix/supportmatrix.htmThis document is intended to augment the Release Notes.You can find both the Support Matrix(supportmatrix_en.html) and the Release Notes(releasenotes_en.html)at the root directory of the installation media.Installation GuideHardware and Software RequirementsHardwareOperating SystemDatabaseWeb BrowserTuning the JBoss Memory SizeLocalized Product SupportDeployment GuideIntegration and Coexistence with Other ProductsSupported Network DevicesInstallation GuidePre-installation requirements,as well as instructions for installing NNM,are documented in the installation guide provided in Adobe Acrobat(.pdf)format.The document file is included on the product's installation media as:install-guide_en.pdf. After installation,this document can be found from the NNM User Interface by selecting Help → Documentation Library → Installation Guide.Hardware and Software RequirementsBefore installing Network Node Manager make sure that your system meets the following minimum requirements: Hardware∙Intel64-bit(x86-64)or AMD64-bit(AMD64)▪Caution:Intel32-bit(x86)hardware is not supported.Verify your computer architecture by looking at the%PROCESSOR_ARCHITECTURE%variable or System Properties.∙Itanium Processor Family(IPF,formerly IA-64)▪Caution:IPF hardware running the Windows operating system is not supported∙Sun SPARC∙VMWare ESX Server3.x▪Virtual environment must meet the Intel or AMD hardware requirements listed here∙Virtual Memory/Swap Space▪Recommend2times physical memory and at least12GB▪Verify virtual memory via the swapinfo command on HP-UX,the swap command on Solaris,the cat /proc/meminfo command on Linux,or System Properties on Windows∙CPU RAM and Disk Space RequirementsManagement Requirements NNM Minimum System RequirementsNumberof discovered nodes Number ofpolledinterfacesNumber ofconcurrentusersCPU(64-bit)IPFx86-64AMD64SPARCRAM Java heap size(see Tuningthe JBossMemory size,below)Disk space forApplicationinstallation(<NnmInstallDir>)*Disk space fordatabase and dataduring execution(<NnmDataDir>)**Up to3K Up to10K Up to104CPU or2x dual core(>1GHZprocessorspeed)4GB2GB5GB20GB3K–8K Up to20K Up to254CPU or2x dual core(>1GHZprocessorspeed)8GB4GB5GB30GB8K–15K Up to50K Up to408CPU or4x dual core(>1GHZprocessorspeed)16GB8GB5GB60GB*<NnmInstallDir>is configured during installation on Windows or by creating a symlink of/opt/OV on UNIX.NNM7.x NOTE:/etc/opt/OV is no longer used on UNIX.**<NnmDataDir>is configured during installation on Windows or by creating a symlink of/var/opt/OV on UNIX.Operating System∙Windows▪Windows Server2003Enterprise x64with Service Pack2▪Windows Server2003Enterprise x64R2with Service Pack2▪Caution:Windows operating systems on Itanium Processor Family(IPF)are not supported▪Caution:Windows32-bit operating systems are not supported▪Other Windows Softwareo Microsoft Simple Network Management Protocol must be installed(see Install Guide)∙HP-UX▪HP-UX11iv3▪Kernel configuration(verify with/usr/sbin/smh)o Verify kernel parameters in the"Kernel Configuration/Tunables"section:o nproc:add50o max_threads_proc=2048o nkthreads=10000▪System Configurationo Verify using swapinfo that the system has a sufficient amount of swap.The minimum requirement is12 GB.This is the sum of the RAM and swap space available.▪Operating System Kernel PatchesThe following HP-UX11iv3operating system patches are required(or newer if the patch has beensuperseded).You can verify patches on HP-UX by running/usr/sbin/swlist-l fileset-a patch_state*.*,c=patch|grep-v superseded This list does not include Java patches(see next bullet),but only the list of OS-level patches.The following patches are required:o PHKL_36054o PHKL_36261o PHKL_36872o PHKL_37184▪Run HPjconfig HP-UX11i system configuration tool to validate the system configuration.HPjconfig can be downloaded from /go/java.To install:o On your HP-UX system,gunzip and untar the.tar.gz file as follows:gunzip HPjconfig-3.1.00.tar.gztar-xvf HPjconfig-3.1.00.taro To start HPJconfig:Change to the directory you installed the HPjconfig files.There are two ways you can run HPjconfig,GUI and non-GUI mode.Enter one of the following commands: java-jar./HPjconfig.jar(The default HPjconfig GUI)java-jar./HPjconfig.jar-nogui-help(The-help command lists options that you can use in non-GUI mode)o To list missing patches in non-GUI mode:java-jar./HPjconfig.jar-nogui-patches-listmisThis will validate kernel configuration and patch levels∙Solaris▪Sun Solaris10SPARC▪Caution:Solaris on Intel Architecture is not supported▪The shared memory must be updated.Update the/etc/system entry using an editor as follows: set shmsys:shminfo_shmmax=1073741824∙Linux▪RedHat Enterprise Server AS4.0▪RedHat Enterprise Server ES4.0▪The default size of kernel.shmmax may be too small for the embedded database to operate after a reboot.To validate,run/sbin/sysctl–a|/bin/grep kernel.shmmax.If this is less than300Meg(300000000),then it must be modified.To change the value,run:/sbin/sysctl–w kernel.shmmax=300000000To make this change permanent(after a reboot),one must edit the/etc/sysctl.conf file and add the following entry:kernel.shmmax=300000000▪See the installation guide for the dependency on the64-bit libstdc++libraries.DatabaseNNM can store its data using an embedded database that is automatically installed,or in an Oracle database.Oracle as a database must be chosen at installation time.NOTE:you cannot migrate from an embedded database to Oracle or back.∙Embedded database on the management system▪The embedded database is automatically installed and automatically initialized and maintained by NNM▪The embedded database comes with tools for re-initialization,online backup,and restore▪The embedded database performs well for most deployments∙Oracle10g Release2(10.2.0.x)installed on a remote system▪Recommend at least a1GB network connection between the NNM management server and the database server▪Database user must be created before install(see Install Guide)with at least4GB of tablespaceWeb Browser∙General Web Browser Requirements▪Any Window Popup Blockers must be disabled for the browser(see instructions on the console sign-in page or Install Guide)▪Cookies must be enabled for the browser(see instructions on the console sign-in page or Install Guide)▪Client display should have a resolution of at least1024x768∙Web Browser Running on a Remote Client System(for operational use)▪Microsoft Internet Explorer version7.0.5730.11or newer with October2007or later Cumulative Patch for Internet Explorer7.This patch increases the number of Internet Explorer cookies from20to50,allowing for savingof more NNM console table configurations.▪Mozilla Firefox version2.0.0.11or newer from a Windows or Linux client.The Firefox browser may be downloaded from /firefox▪Caution:Microsoft Internet Explorer version6is not supported▪Caution:Apple Safari is not supported∙Web Browser Running on the Local Management Server System(for initial installation and configuration use)▪Any browser supported for operational use(see above)when running on the management server▪Mozilla Firefox version2.0.0.4or newer for HP-UX11.31on IPF server.The Firefox browser may be downloaded from /go/firefox▪Mozilla Firefox version2.0.0.9or newer for Solaris SPARC10.The Firefox browser may be downloaded from /pub//firefox/releases/2.0.0.9/contrib/solaris_pkgadd/Tuning the JBoss Memory SizeDuring installation,the recommended default maximum memory size of the JBoss application server is configured inovjboss.jvm.properties.For larger environments this value can be increased to improve performance.The current value is displayed in the NNM console via Help → About.It is recommended that this value not exceed one-half of the amount of physical RAM.To change the JBoss Maximum Java Heap Size:1.ovstop–c ovjboss2.Edit the ovjboss.jvm.properties file and change the Maximum Java Heap Size to the required amount.∙Windows:C:\Documents and Settings\All Users\Application Data\HP\HP BTO Software\\shared\nnm\conf\ovjboss\ovjboss.jvm.properties∙HP-UX:/var/opt/OV/shared/nnm/conf/ovjboss/ovjboss.jvm.properties1.Modify the-Xmx and optionally-Xms valuesA snippet of the file looks like this:##JVM Memory parameters#-Xms:Initial Java Heap Size#-Xmx:Maximum Java Heap Size#-Xms128m-Xmx2048m2.ovstart–c ovjbossLocalized Product SupportNNM8.01is internationalized and can be used on operating systems configured for non-US-English locales that are supported by the operating systems.Those locales include variants of Japanese,Korean,Simplified Chinese,and Traditional Chinese,and Western and Central European locales,and Russian.NNM has been localized to Japanese.Under other locales,NNM will produce English strings,while accepting non-English characters as input.NNM uses UTF-8based locales on Linux only.When running on HP-UX,Solaris,and Windows,NNM uses non-UTF-8based locales supported by that operating system.Due to these character set differences,NNM is not supported from a Linux browser client to an HP-UX,Solaris,or Windows server running in a non-English locale.Deployment GuideTo get the latest version of the NNM8.00deployment guide,go to the following web site and request the HP Network Node Manager Software Deployment Guide:/lpe/doc_serv/Integration and Coexistence with Other ProductsThe following products have been tested to co-exist on the same system as NNMi8.01:∙HP Operations Agent(OMW64bit https Agent)Version8.x(Windows Server2003Enterprise x64R2Service Pack2 only)∙HP Operations Agent(OMU64bit https Agent)Version8.x(HP-UX11.31IPF,Solaris10SPARC)∙HP Performance Insight Version5.3(HP-UX11.31IPF,Solaris10SPARC)∙HP Performance Agent Version4.7(Windows Server2003Enterprise x64SP2,Windows Server2003Enterprise x64 R2Service Pack2)∙HP Performance Manager Version8.0(HP-UX11.31IPF,Solaris10SPARC)Caution:Installation of HP Performance Manager followed by NNMi8.01is supported.Installation of NNMi8.01followed by HP Performance Manager is not supported.Caution:If HP Performance Manager is installed,followed by NNMi8.01,then HP Performance Manager is uninstalled, the HPOvPerlA package must be reinstalled using the appropriate OS command:▪Solaris:pkgadd–d<full path to HPOvPerlA sparc package>/HPOvPerlA-05.08.081-SunOS5.7-release.sparc ▪HP-UX:swinstall–s<full path to HPOvPerlA depot package>/HPOvPerlA-05.08.081-HPUX11.22_IPF32-release.depot\*∙HP Extensible SNMP Agent Version4.21(HP-UX11.31IPF,Solaris10SPARC)The following products have an NNMi8.01integration available:∙HP Network Node Manager iSPI for Performance version8.01∙HP Network Node Manager Versions6.x and7.x(Integration built into NNMi.See"NNM6.x/7.x Management Stations"in the online help)∙HP Network Automation Server(NAS)version7.01∙NetScout nGenius version4.3∙AlarmPoint Systems AlarmPoint3.2.1Supported Network DevicesFor the list of supported network devices and MIB requirements,refer to the NNMi Device Support Matrix.。

uboot内核移植和裁剪详细步骤

uboot内核移植和裁剪详细步骤

uboot内核移植和裁剪详细步骤-U-boot内核移植步骤:Linux 3.3.5系统移植1. 将arch/arm/mach-s3c6410/下的,mach-smdk6410.c cp为mach-my6410.c;2. 打开arch/arm/mach-s3c6410/下的Kconfig,仿照MACH_SMDK6410做一个菜单项:config MACH_MY6410bool "MY6410"select CPU_S3C6410select SAMSUNG_DEV_ADCselect S3C_DEV_HSMMCselect S3C_DEV_HSMMC1select S3C_DEV_I2C1select SAMSUNG_DEV_IDEselect S3C_DEV_FBselect S3C_DEV_RTCselect SAMSUNG_DEV_TSselect S3C_DEV_USB_HOSTselect S3C_DEV_USB_HSOTGselect S3C_DEV_WDTselect SAMSUNG_DEV_BACKLIGHTselect SAMSUNG_DEV_KEYPADselect SAMSUNG_DEV_PWMselect HAVE_S3C2410_WATCHDOG if WATCHDOGselect S3C64XX_SETUP_SDHCIselect S3C64XX_SETUP_I2C1select S3C64XX_SETUP_IDEselect S3C64XX_SETUP_FB_24BPPselect S3C64XX_SETUP_KEYPADhelpMachine support for the Pillar MY64103. 打开arch/arm/tools/mach-types文件,这里面存的是机器ID必须要和uboot里面的ID保持一致,将其283行复制添加在后面并修改为: smdk6410MACH_SMDK6410 SMDK6410 1626 xx6410 MACH_XX6410 XX6410 1626 这个机器ID和UBOOT里的机器ID相同时才能启动内核;1. 修改BSP文件mach-my6410.c,内容如下:将mach-mach-my6410.c文件中的所有smdk6410改成my6410(不要改大写SMDK6410的)MACHINE_START(MY6410, "MY6410")//这个要和Kconfig里的MACH-MY6410匹配 2. 在当前目录的Makefile最后一行加上 obj-$(CONFIG_MACH_MY6410) += mach-my6410.o3. 修改顶层的Makefile:ARCH ?= armCROSS_COMPILE ?= /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux- 4. 复制arch/arm/configs/下的s3c6400-defconfig文件,然后将其保存为.config,配置内核支持EABI,再选中XX6410 board这一项,保存退出;5. 执行make menuconfig对内核进行配置:执行make编译执行make zImage生成zImage将uboot根目录下的mkimage拷贝到/user/bin目录下执行make uImage生成uImage通过以上几步linux内核移植完了,剩下就移植驱动了。

Linux操作系统错误

Linux操作系统错误

Linux 操作系统错误代码解释【中英文对照】OS error code 0: Success操作系统错误代码0:成功OS error code 1: Operation not permitted操作系统错误代码1:操作不允许OS error code 2: No such file or directory操作系统错误代码2:没有这样的文件或目录OS error code 3: No such process操作系统错误代码3:没有这样的过程OS error code 4: Interrupted system call操作系统错误代码4:中断的系统调用OS error code 5: Input/output error操作系统错误代码5:输入/输出错误OS error code 6: No such device or address操作系统错误代码6:没有这样的设备或地址OS error code 7: Argument list too long操作系统错误代码7:参数列表太长OS error code 8: Exec format error操作系统错误代码8:执行格式错误OS error code 9: Bad file descriptor操作系统错误代码9:坏的文件描述符OS error code 10: No child processes操作系统错误代码10:无子过程OS error code 11: Resource temporarily unavailable 操作系统错误代码11:资源暂时不可用OS error code 12: Cannot allocate memory操作系统错误代码12:无法分配内存OS error code 13: Permission denied操作系统错误代码13:权限被拒绝OS error code 14: Bad address操作系统错误代码14:错误的地址OS error code 15: Block device required操作系统错误代码15:需要块设备OS error code 16: Device or resource busy操作系统错误代码16:设备或资源忙OS error code 17: File exists操作系统错误代码17:文件已经存在OS error code 18: Invalid cross-device link操作系统错误代码18:无效的跨设备链接OS error code 19: No such device操作系统错误代码19:没有这样的设备OS error code 20: Not a directory操作系统错误代码20:不是一个目录OS error code 21: Is a directory操作系统错误代码21:是一个目录OS error code 22: Invalid argument操作系统错误代码22:无效参数OS error code 23: Too many open files in system操作系统错误代码23:打开太多的文件系统OS error code 24: Too many open files操作系统错误代码24:打开的文件太多OS error code 25: Inappropriate ioctl for device操作系统错误代码25:不适当的设备ioctl使用OS error code 26: Text file busy操作系统错误代码26:文本文件忙OS error code 27: File too large操作系统错误代码27:文件太大OS error code 28: No space left on device操作系统错误代码28:设备上没有空间OS error code 29: Illegal seek操作系统错误代码29:非法搜索OS error code 30: Read-only file system操作系统错误代码30:只读文件系统OS error code 31: Too many links操作系统错误代码31:链接过多OS error code 32: Broken pipe操作系统错误代码32:管道破裂OS error code 33: Numerical argument out of domain 操作系统错误代码33:超出域的数值参数OS error code 34: Numerical result out of range操作系统错误代码34:数值结果超出范围OS error code 35: Resource deadlock avoided操作系统错误代码35:避免资源死锁OS error code 36: File name too long操作系统错误代码36:文件名太长OS error code 37: No locks available操作系统错误代码37:没有可用锁OS error code 38: Function not implemented操作系统错误代码38:功能没有实现OS error code 39: Directory not empty操作系统错误代码39:目录非空OS error code 40: Too many levels of symbolic links 操作系统错误代码40:符号链接层次太多OS error code 42: No message of desired type操作系统错误代码42:没有期望类型的消息OS error code 43: Identifier removed操作系统错误代码43:标识符删除OS error code 44: Channel number out of range操作系统错误代码44:通道数目超出范围OS error code 45: Level 2 not synchronized操作系统错误代码45:2级不同步OS error code 46: Level 3 halted操作系统错误代码46:3级终止OS error code 47: Level 3 reset操作系统错误代码47:3级复位OS error code 48: Link number out of range 操作系统错误代码48:链接数超出范围OS error code 49: Protocol driver not attached 操作系统错误代码49:协议驱动程序没有连接OS error code 50: No CSI structure available 操作系统错误代码50:没有可用的CSI结构OS error code 51: Level 2 halted操作系统错误代码51:2级中断OS error code 52: Invalid exchange操作系统错误代码52:无效的交换OS error code 53: Invalid request descriptor 操作系统错误代码53:无效的请求描述符OS error code 54: Exchange full操作系统错误代码54:交换空间满OS error code 55: No anode操作系统错误代码55:阳极不存在OS error code 56: Invalid request code操作系统错误代码56:无效的请求代码OS error code 57: Invalid slot操作系统错误代码57:无效的槽OS error code 59: Bad font file format操作系统错误代码59:错误的字体文件格式OS error code 60: Device not a stream操作系统错误代码60:设备不属于流类型OS error code 61: No data available操作系统错误代码61:无可用数据OS error code 62: Timer expired操作系统错误代码62:超时OS error code 63: Out of streams resources操作系统错误代码63:超出流资源范围OS error code 64: Machine is not on the network 操作系统错误代码64:主机不在网络上OS error code 65: Package not installed操作系统错误代码65:软件包没有安装OS error code 66: Object is remote操作系统错误代码66:对象是远程的OS error code 67: Link has been severed操作系统错误代码67:链接被切断OS error code 68: Advertise error操作系统错误代码68:广告错误OS error code 69: Srmount error操作系统错误代码69:srmount错误OS error code 70: Communication error on send 操作系统错误代码70:发送数据时通讯错误OS error code 71: Protocol error操作系统错误代码71:协议错误OS error code 72: Multihop attempted操作系统错误代码72:企图进行多次跳转OS error code 73: RFS specific error操作系统错误代码73:RFS类型错误OS error code 74: Bad message操作系统错误代码74:坏消息OS error code 75: Value too large for defined data type操作系统错误代码75:数值超过对于给定的数据类型OS error code 76: Name not unique on network操作系统错误代码76:主机名在网络上不是唯一OS error code 77: File descriptor in bad state操作系统错误代码77:坏状态的文件描述符OS error code 78: Remote address changed操作系统错误代码78:远端地址改变OS error code 79: Can not access a needed shared library操作系统错误代码79:无法访问需要的共享库OS error code 80: Accessing a corrupted shared library操作系统错误代码80:访问了一个损坏的共享库OS error code 81: .lib section in a.out corrupted操作系统错误代码81:a. out文件中的.lib段损坏。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Linux 2.4.x Initialization for IA−32 HOWTOLinux 2.4.x Initialization for IA−32 HOWTO (1)Randy Dunlap, rddunlap@ (1)1. Introduction (1)2. Linux init ("ASCII art") (1)3. Linux early setup (1)4. Linux architecture−specific initialization (1)5. Linux architecture−independent initialization (1)6. Glossary (2)7. References (2)1. Introduction (2)1.1 Overview (2)1.2 This document (2)1.3 Contributions (3)1.4 Trademarks (3)1.5 License (3)2. Linux init ("ASCII art") (3)3. Linux early setup (5)3.1 IA−32 Kernel Setup (5)start_of_setup: (6)Read second hard drive DASD type (6)Check that LILO loaded us right (6)Check old loader trying to load a big kernel (6)Determine system memory size (6)Video adapter modes (7)Get Hard Disk parameters (7)Get Micro Channel bus information (7)Check for mouse (8)Check for APM BIOS support (8)Prepare to move to protected mode (8)Enable address line A20 (8)Make sure any possible coprocessor is properly reset (9)Mask all interrupts (9)Move to Protected Mode (9)Jump to startup_32 code (9)3.2 Video Setup (10)video: (10)basic_detect: (10)mode_params: (11)mopar_gr: (11)mode_menu: (11)mode_set: (11)store_screen: (12)restore_screen: (12)mode_table: (12)mode_scan: (12)svga_modes: (13)4. Linux architecture−specific initialization (13)4.1 startup_32: (13)4.2 Set segment registers to known values (13)4.3 SMP BSP (Bootstrap Processor) check (13)4.4 Initialize page tables (14)4.5 Enable paging (14)4.6 Clear BSS (14)4.7 32−bit setup (14)4.8 Copy boot parameters and command line out of the way (14)4.9 checkCPUtype (15)4.10 Count this processor (15)4.11 Load descriptor table pointer registers (15)4.12 Start other processors (15)5. Linux architecture−independent initialization (16)5.1 start_kernel: (16)More architecture−specific init (16)Continue architecture−independent init (16)Parsing command line options (17)trap_init (17)init_IRQ (17)sched_init (18)time_init (18)softirq_init (18)console_init (18)init_modules (18)Profiling setup (19)kmem_cache_init (19)sti (19)calibrate_delay (19)INITRD setup (19)mem_init (19)kmem_cache_sizes_init (19)proc_root_init (20)mempages = num_physpages; (20)fork_init(mempages) (20)proc_caches_init() (20)vfs_caches_init(mempages) (20)buffer_init(mempages) (20)page_cache_init(mempages) (21)kiobuf_setup() (21)signals_init() (21)bdev_init() (21)inode_init(mempages) (21)ipc_init() (21)dquot_init_hash() (22)check_bugs() (22)Start other SMP processors (as applicable) (22)Start init thread (23)unlock_kernel() (23)current−>need_resched = 1; (23)cpu_idle() (23)5.2 setup_arch (23)Copy and convert system parameter data (23)For RAMdisk−enabled configs (CONFIG_BLK_DEV_RAM) (23)setup_memory_region (23)Set memory limits (23)parse_mem_cmdline (24)Setup Page Frames (24)Handle SMP and IO APIC Configurations (24)paging_init() (24)Save the boot−time SMP configuration (24)Reserve INITRD memory (24)Scan for option ROMs (24)Reserve system resources (25)5.3 init thread (25)5.4 do_basic_setup {part of the init thread} (25)Be the reaper of orphaned children (25)MTRRs (25)SYSCTLs (25)Init Many Devices (25)PCI (26)Micro Channel (26)ISA PnP (26)Networking Init (26)Initial RamDisk (26)Start the kernel "context" thread (keventd) (26)Initcalls (26)Filesystems (27)IRDA (27)PCMCIA (28)Mount the root filesystem (28)Mount the dev (device) filesystem (28)Switch to the Initial RamDisk (28)6. Glossary (28)7. References (30)Linux 2.4.x Initialization for IA−32 HOWTORandy Dunlap, rddunlap@v1.0, 2001−05−17This document contains a description of the Linux 2.4 kernel initialization sequence on IA−32 processors.1. Introduction•1.1 Overview1.2 This document••1.3 Contributions•1.4 Trademarks•1.5 License2. Linux init ("ASCII art")3. Linux early setup•3.1 IA−32 Kernel Setup•3.2 Video Setup4. Linux architecture−specific initialization4.1 startup_32:••4.2 Set segment registers to known values•4.3 SMP BSP (Bootstrap Processor) check•4.4 Initialize page tables•4.5 Enable paging•4.6 Clear BSS•4.7 32−bit setup•4.8 Copy boot parameters and command line out of the way4.9 checkCPUtype••4.10 Count this processor4.11 Load descriptor table pointer registers••4.12 Start other processors5. Linux architecture−independent initialization•5.1 start_kernel:•5.2 setup_arch•5.3 init thread•5.4 do_basic_setup {part of the init thread}6. Glossary7. References1. IntroductionPortions of this text come from comments in the kernel source files (obviously). I have added annotations in many places. I hope that this will be useful to kernel developers −− either new ones or experienced ones who need more of this type of information. However, if there's not enough detail here for you, "Use the Source."1.1 OverviewThis description is organized as a brief overview which lists the sections that are described later in more detail.The description is in three main sections. The first section covers early kernel initialization on IA−32 (but only after your boot loader of choice and other intermediate loaders have run; i.e., this description does not cover loading the kernel). This section is based on the code in "linux/arch/i386/boot/setup.S" and"linux/arch/i386/boot/video.S".The second major section covers Linux initialization that is x86− (or i386− or IA−32−) specific. This section is based on the source files "linux/arch/i386/kernel/head.S" and "linux/arch/i386/kernel/setup.c".The third major section covers Linux initialization that is architecture−independent. This section is based on the flow in the source file "linux/init/main.c".See the References section for other valuable documents about booting, loading, and initialization.1.2 This documentThis document describes Linux 2.4.x initialization on IA−32 (or i386 or x86) processors −− after one or more kernel boot loaders (if any) have done their job.You can format it using the commands (for example):% sgml2txt ia32_init_240.sgmlor% sgml2html ia32_init_240.sgmlThis will produce plain ASCII or HTML files respectively. You can also produce LaTeX, GNU, and RTF info by using the proper sgmltool (man sgmltools).1.3 ContributionsAdditions and corrections are welcome. Please send them to me (rddunlap@). Contributions of section descriptions that are used will be credited to their author(s).1.4 TrademarksAll trademarks are the property of their respective owners.1.5 LicenseCopyright (C) 2001 Randy Dunlap.This document may be distributed only subject to the terms and conditions set forth in the LDP (Linux Documentation Project) License at "/COPYRIGHT.html".2. Linux init ("ASCII art")Pictorially (loosely speaking :), Linux initialization looks like this, where "[...]" means optional (depends on the kernel's configuration) and "{...}" is a comment.+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+| arch/i386/boot/setup.S:: + || arch/i386/boot/video.S:: ||−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−|| start_of_setup: || check that loaded OK || get system memory size || get video mode(s) || get hard disk parameters || get MC bus information || get mouse information || get APM BIOS information || enable address line A20 || reset coprocessor || mask all interrupts || move to protected mode || jmp to startup_32 |+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+|v+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+| arch/i386/kernel/head.S:: ||−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−|| startup_32: || set segment registers to || known values || init basic page tables || setup the stack pointer || clear kernel BSS || setup the IDT || checkCPUtype || load GDT, IDT, and LDT || pointer registers || start_kernel || {it does not return} |+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+|v+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | init/main.c:: | +−>| arch/i386/kernel/setup.c:: | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | |−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−| | start_kernel(): | | | setup_arch(): | | lock_kernel | | | copy boot parameters | | setup_arch |−−+ | init ramdisk | | parse_options |<−+ | setup_memory_region | | trap_init | | | parse_cmd_line | | cpu_init | | | use the BIOS memory map to | | init_IRQ | | | setup page frame info. | | sched_init | | | reserve physical page 0 | | init_timervecs | | | [find_smp_config] | | time_init | | | paging_init | | softirq_init | | | [get_smp_config] | | console_init | | | [init_apic_mappings] | | [init_modules] | | | [reserve INITRD memory] | | [profiling setup] | | | probe_roms to search | | kmem_cache_init | | | for option ROMs | | sti | | | request_resource to | | calibrate_delay | | | reserve video RAM memory | | [INITRD setup] | | | request_resource to | | mem_init | | | reserve all standard PC | | free_all_bootmem | +−−| I/O system board resources| | kmem_cache_sizes_init | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | [proc_root_init] || fork_init || proc_caches_init || vfs_caches_init || buffer_init || page_cache_init || kiobuf_setup || signals_init | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ | bdev_init | | init/main.c:: | | inode_init | | init(): {...init thread...} | | [ipc_init] | | do_basic_setup | | [dquot_init_hash] | | {bus/dev init & initcalls}| | check_bugs | | free_initmem | | [smp_init] {*below} | | open /dev/console | | start init thread {−−−−>} |.....| exec init script or shell | | unlock_kernel | | or panic | | cpu_idle | +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+ +−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−++−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+| smpboot.c::smp_init ||−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−|| arch/i386/kernel/smpboot.c:: || smp_boot_cpus(): || [mtrr_init_boot_cpu] || smp_store_cpu_info || print_cpu_info || save CPU ID/APIC ID mappings|| verify_local_APIC || connect_bsp_APIC || setup_local_APIC || foreach valid APIC ID || do_boot_cpu(apicid) || setup_IO_APIC || setup_APIC_clocks || synchronize_tsc_bp |+−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−+3. Linux early setup(from linux/arch/i386/boot/setup.S and linux/arch/i386/boot/video.S)NOTE: Register notation is %regname and constant notation is a number, with or without a leading '$' sign.3.1 IA−32 Kernel Setup"setup.S" is responsible for getting the system data from the BIOS and putting them into the appropriate places in system memory.Both "setup.S" and the kernel have been loaded by the boot block."setup.S" is assembled as 16−bit real−mode code. It switches the processor to 32−bit protected mode and jumps to the 32−bit kernel code.This code asks the BIOS for memory/disk/other parameters, and puts them in a "safe" place:0x90000−0x901FF, that is, where the boot block used to be. It is then up to the protected mode system to read them from there before the area is overwritten for buffer−blocks.The "setup.S" code begins with a jmp instruction around the "setup header", which must begin at location%cs:2.This is the setup header:.ascii "HdrS" # header signature.word 0x0202 # header version numberrealmode_swtch: .word 0, 0 # default_switch, SETUPSEGstart_sys_seg: .word SYSSEG.word kernel_version # pointer to kernel version stringtype_of_loader: .byte 0loadflags:LOADED_HIGH = 1 # If set, the kernel is loaded high#ifndef __BIG_KERNEL__.byte 0#else.byte LOADED_HIGH#endifsetup_move_size: .word 0x8000 # size to move, when setup is not# loaded at 0x90000.code32_start: # here loaders can put a different# start address for 32−bit code.#ifndef __BIG_KERNEL__.long 0x1000 # default for zImage#else.long 0x100000# default for big kernel#endiframdisk_image: .long 0 # address of loaded ramdisk imageramdisk_size: .long 0 # its size in bytesbootsect_kludge: .word bootsect_helper, SETUPSEGheap_end_ptr: .word modelist+1024 # (Header version 0x0201 or later)# space from here (exclusive) down to# end of setup code can be used by setup# for local heap purposes.pad1: .word 0cmd_line_ptr: .long 0 # (Header version 0x0202 or later)# If nonzero, a 32−bit pointer# to the kernel command line.trampoline: call start_of_setup # no return from start_of_setup.space 1024# End of setup header #####################################################start_of_setup:Read second hard drive DASD typeRead the DASD type of the second hard drive (BIOS int. 0x13, %ax=0x1500, %dl=0x81).# Bootlin depends on this being done early. [TBD:why?]Check that LILO loaded us rightCheck the signature words at the end of setup. Signature words are used to ensure that LILO loaded us right. If the two words are not found correctly, copy the setup sectors and check for the signature words again. If they still aren't found, panic("No setup signature found ...").Check old loader trying to load a big kernelIf the kernel image is "big" (and hence is "loaded high"), then if the loader cannot handle "loaded high" images, then panic ("Wrong loader, giving up...").Determine system memory sizeGet the extended memory size {above 1 MB} in KB. First clear the extended memory size to 0.#ifndef STANDARD_MEMORY_BIOS_CALLClear the E820 memory area counter.Try three different memory detection schemes.First, try E820h, which lets us assemble a memory map, then try E801h, which returns a 32−bit memory size, and finally 88h, which returns 0−64 MB.Method E820H populates a table in the empty_zero_block that contains a list of usable address/size/type tuples. In "linux/arch/i386/kernel/setup.c", this information is transferred into the e820map, and in"linux/arch/i386/mm/init.c", that new information is used to mark pages reserved or not.Method E820H:Get the BIOS memory map. E820h returns memory classified into different types and allows memory holes. We scan through this memory map and build a list of the first 32 memory areas {up to 32 entries or BIOS says that there are no more entries}, which we return at "E820MAP". [See URL:/ acpi/acpihtml/topic245.htm]Method E801H:We store the 0xe801 memory size in a completely different place, because it will most likely be longer than 16 bits.This is the sum of 2 registers, normalized to 1 KB chunk sizes: %ecx = memory size from 1 MB to 16 MB range, in 1 KB chunks + %edx = memory size above 16 MB, in 64 KB chunks.Ye Olde Traditional Methode:BIOS int. 0x15/AH=0x88 returns the memory size (up to 16 MB or 64 MB, depending on the BIOS). We always use this method, regardless of the results of the other two methods.#endifSet the keyboard repeat rate to the maximum rate using using BIOS int. 0x16.Video adapter modesFind the video adapter and its supported modes and allow the user to browse video modes.call video # {see Video section below}Get Hard Disk parametersGet hd0 data: Save the hd0 descriptor (from int. vector 0x41) at INITSEG:0x80 length 0x10.Get hd1 data: Save the hd1 descriptor (from int. vector 0x46) at INITSEG:0x90 length 0x10.Check that there IS an hd1, using BIOS int. 0x13. If not, clear its descriptor.Get Micro Channel bus informationCheck for Micro Channel (MCA) bus:•Set MCA feature table length to 0 in case not found.Get System Configuration Parameters (BIOS int. 0x15/%ah=0xc0). This sets %es:%bx to point to the •system feature table.•We keep only the first 16 bytes of the system feature table if found: Structure size, Model byte,Submodel byte, BIOS revision, and Feature information bytes 1−5. Bit 0 or 1 (either one) of Feature byte 1 indicates that the system contains a Micro Channel bus.Video adapter modes 7Check for mouseCheck for PS/2 pointing device by using BIOS int. 0x11 {get equipment list}.•Clear the pointing device flag (default).•BIOS int. 0x11: get equipment list.•If bit 2 (value 0x04) is set, then a mouse is installed and the pointing device flag is set to indicate that the device is present.Check for APM BIOS supportCheck for an APM BIOS (if kernel is configured for APM support):start: clear version field to 0, which means no APM BIOS present.••Check for APM BIOS installation using BIOS int. 0x15.If not present, done.••Check for "PM" signature returned in %bx.•If no signature, then no APM BIOS: done.•Check for 32−bit support in %cx.•If no 32−bit support, no (good) APM BIOS: done. Must have 32−bit APM BIOS support to be used by Linux.•Save the BIOS code segment, BIOS entry point offset, BIOS 16−bit code segment, BIOS datasegment, BIOS code segment length, and BIOS data segment length.•Record the APM BIOS version and flags.Prepare to move to protected modeWe build a jump instruction to the kernel's code32_start address. (The loader may have changed it.)Move the kernel to its correct place if necessary.Load the segment descriptors (load %ds = %cs).Make sure that we are at the right position in memory, to accommodate the command line and boot parameters at their fixed locations.Load the IDT pointer register with 0,0.Calculate the linear base address of the kernel GDT (table) and load the GDT pointer register with its base address and limit. This early kernel GDT describes kernel code as 4 GB, with base address 0,code/readable/executable, with granularity of 4 KB. The kernel data segment is described as 4 GB, with base address 0, data/readable/writable, with granularity of 4 KB.Enable address line A20•Empty the 8042 (keyboard controller) of any queued keys.•Write 0xd1 (Write Output Port) to Command Register port 0x64.•Empty the 8042 (keyboard controller) of any queued keys.Write 0xdf (Gate A20 + more) to Output port 0x60.••Empty the 8042 (keyboard controller) of any queued keys.Check for mouse 8Set bit number 1 (value 0x02: FAST_A20) in the "port 0x92" system control register. This enables •A20 on some systems, depending on the chipset used in them.•Wait until A20 really *is* enabled; it can take a fair amount of time on certain systems. The memory location used here (0x200) is the int 0x80 vector, which should be safe to use. When A20 is disabled, the test memory locations are an alias of each other (segment 0:offset 0x200 and segment0xffff:offset 0x210). {0xffff0 + 0x210 = 0x100200, but if A20 is disabled, this becomes 0x000200.} We just wait (busy wait/loop) until these memory locations are no longer aliased.Make sure any possible coprocessor is properly reset•Write 0 to port 0xf0 to clear the Math Coprocessor '−busy' signal.•Write 0 to port 0xf1 to reset the Math Coprocessor.Mask all interruptsNow we mask all interrupts; the rest is done in init_IRQ().•Mask off all interrupts on the slave PIC: write 0xff to port 0xa1.•Mask off all interrupts on the master PIC except for IRQ2, which is the cascaded IRQ input from the slave PIC: write 0xfb to port 0x21.Move to Protected ModeNow is the time to actually move into protected mode. To make things as simple as possible, we do no register setup or anything, we let the GNU−compiled 32−bit programs do that. We just jump to absolute address 0x1000 (or the loader supplied one), in 32−bit protected mode.Note that the short jump isn't strictly needed, although there are reasons why it might be a good idea. It won't hurt in any case.Set the PE (Protected mode Enable) bit in the MSW and jump to the following instruction to flush the instruction fetch queue.Clear %bx to indicate that this is the BSP (first CPU only).Jump to startup_32 codeJump to the 32−bit kernel code (startup_32).NOTE: For high−loaded big kernels we need:jmpi 0x100000,__KERNEL_CSbut we yet haven't reloaded the %cs register, so the default size of the target offset still is 16 bit. However, using an operand prefix (0x66), the CPU will properly take our 48−bit far pointer. (INTeL 80386 Programmer's Reference Manual, Mixing 16−bit and 32−bit code, page 16−6)..byte 0x66, 0xea # prefix + jmpi−opcodecode32: .long 0x1000 # or 0x100000 for big kernels.word __KERNEL_CSMake sure any possible coprocessor is properly reset 9This jumps to "startup_32" in "linux/arch/i386/kernel/head.S".3.2 Video Setup"linux/arch/i386/boot/video.S" is included into "linux/arch/i386/boot/setup.S", so they are assembled together. The file separation is a logical module separation even though the two modules aren't built separately."video.S" handles Linux/i386 display adapter and video mode setup. For more information about Linux/i386 video modes, see "linux/Documentation/svga.txt" by Martin Mares [mj@ucw.cz].Video mode selection is a kernel build option. When it is enabled, You can select a specific (fixed) video mode to be used during kernel booting or you can ask to view a selection menu and then choose a video mode from that menu.There are a few esoteric (!) "video.S" build options that not covered here. See"linux/Documentation/svga.txt" for all of them.CONFIG_VIDEO_SVGA (for automatic detection of SVGA adapters and modes) is normally #undefined. The normal method of video adapter detection on Linux/i386 is VESA (CONFIG_VIDEO_VESA, for autodetection of VESA modes)."video:" is the main entry point called by "setup.S". The %ds register *must* be pointing to the bootsector. The "video.S" code uses different segments from the main "setup.S" code.This is a simplified description of the code flow in "video.S". It does not address theCONFIG_VIDEO_LOCAL, CONFIG_VIDEO_400_HACK, and CONFIG_VIDEO_GFX_HACK build options and it does not dive deep into video BIOS calls or video register accesses.video:•%fs is set to the original %ds value•%ds and %es are set to %cs•%gs is set to zero•Detect the video adapter type and supported modes. (call basic_detect)•#ifdef CONFIG_VIDEO_SELECT•If the user wants to see a list of the supported VGA adapter modes, list them. (call mode_menu)•Set the selected video mode. (call mode_set)•#ifdef CONFIG_VIDEO_RETAINRestore the screen contents. (call restore_screen)••#endif /* CONFIG_VIDEO_RETAIN */#endif /* CONFIG_VIDEO_SELECT */••Store mode parameters for kernel. (call mode_params)•Restore original DS register value.basic_detect:Detect if we have CGA, MDA, HGA, EGA, or VGA and pass it to the kernel.••Check for EGA/VGA using BIOS int. 0x10 calls. This also tells whether the video adapter isCGA/MDA/HGA.3.2 Video Setup 10The "adapter" variable is returned as 0 for CGA/MDA/HGA, 1 for EGA, and 2 for VGA.•mode_params:•Store the video mode parameters for later use by the kernel. This is done by asking the BIOS formode parameters except for the rows/columns parameters in the default 80x25 mode −− these are set directly, because some very obscure BIOSes supply insane values.•#ifdef CONFIG_VIDEO_SELECT•For graphics mode with a linear frame buffer, goto mopar_gr.•#endif /* CONFIG_VIDEO_SELECT */•For MDA/CGA/HGA/EGA/VGA:•Read and save cursor position.Read and save video page/mode/width.••For MDA/HGA, change the video_segment to $0xb000. (Leave it at its initial value of $0xb800 forall other adapters.)Get the Font size (valid only on EGA/VGA).••Save the number of video columns and lines.#ifdef CONFIG_VIDEO_SELECTmopar_gr:•Get VESA frame buffer parameters.•Get video mem size and protected mode interface information using BIOS int. 0x10 calls.mode_menu:Build the mode list table and display the mode menu.mode_set:For the selected video mode, use BIOS int. 0x10 calls or register writes as needed to set some or all of: •Reset the video modeNumber of scan lines••Font pixel sizeSave the screen size in force_size. "force_size" is used to override possibly broken video BIOS•interfaces and is used instead of the BIOS variables.Some video modes require register writes to set:Location of the cursor scan lines••Vertical sync startVertical sync end••Vertical display end•Vertical blank start•Vertical blank end•Vertical total•(Vertical) overflowCorrect sync polarity•mode_params: 11•Preserve clock select bits and color bit{end of mode_set}#ifdef CONFIG_VIDEO_RETAIN /* Normally _IS_ #defined */store_screen:CONFIG_VIDEO_RETAIN is used to retain screen contents when switching modes. This option stores the screen contents to a temporary memory buffer (if there is enough memory) so that they can be restored later.•Save the current number of video lines and columns, cursor position, and video mode.•Calculate the image size.•Save the screen image.•Set the "do_restore" flag so that the screen contents will be restored at the end of video modedetection/selection.restore_screen:Restores screen contents from temporary buffer (if already saved).Get parameters of current mode.••Set cursor position.•Restore the screen contents.#endif /* CONFIG_VIDEO_RETAIN */mode_table:Build the table of video modes at `modelist'.•Store standard modes.•Add modes for standard VGA.•#ifdef CONFIG_VIDEO_LOCAL•Add locally−defined video modes. (call local_modes)•#endif /* CONFIG_VIDEO_LOCAL */•#ifdef CONFIG_VIDEO_VESA•Auto−detect VESA VGA modes. (call vesa_modes)•#endif /* CONFIG_VIDEO_VESA */•#ifdef CONFIG_VIDEO_SVGA•Detect SVGA cards & modes. (call svga_modes)#endif /* CONFIG_VIDEO_SVGA */••#ifdef CONFIG_VIDEO_COMPACT•Compact the video modes list, removing duplicate entries.•#endif /* CONFIG_VIDEO_COMPACT */mode_scan:Scans for video modes.store_screen: 12Start with mode 0.••Test the mode.•Test if it's a text mode.OK, store the mode.••Restore back to mode 3.#ifdef CONFIG_VIDEO_SVGAsvga_modes:Try to detect the type of SVGA card and supply (usually approximate) video mode table for it.•Test all known SVGA adapters.•Call the test routine for each adapter.•If adapter is found, copy the video modes.•Store pointer to card name.#endif /* CONFIG_VIDEO_SVGA */#endif /* CONFIG_VIDEO_SELECT */4. Linux architecture−specific initialization(from "linux/arch/i386/kernel/head.S")The boot code in "linux/arch/i386/boot/setup.S" transfers execution to the beginning code in"linux/arch/i386/kernel/head.S" (labeled "startup_32:").To get to this point, a small uncompressed kernel function decompresses the remaining compressed kernel image and then it jumps to the new kernel code.This is a description of what the "head.S" code does.4.1 startup_32:swapper_pg_dir is the top−level page directory, address 0x00101000.On entry, %esi points to the real−mode code as a 32−bit pointer.4.2 Set segment registers to known valuesSet the %ds, %es, %fs, and %gs registers to __KERNEL_DS.4.3 SMP BSP (Bootstrap Processor) check#ifdef CONFIG_SMPsvga_modes: 13。

相关文档
最新文档