Browse Source

INSTALL: add some notes how to create Linux headers directory

Waldemar Brodkorb 2 years ago
parent
commit
b15e3a2d34
1 changed files with 34 additions and 24 deletions
  1. 34 24
      INSTALL

+ 34 - 24
INSTALL

@@ -2,32 +2,43 @@ SOFTWARE REQUIREMENTS
 
    Compiling uClibc-ng requires Linux kernel header files. uClibc-ng will
    be compiled to match the interfaces available in the provided
-   version of the Linux kernel headers. Linux kernel version 3.x is
-   supported.
+   version of the Linux kernel headers. Any modern Linux kernel is
+   supported (3.x/4.x).
    Its also helpful to have a working version of GNU binutils, and 
    GNU gcc -- using excessively old versions of these packages can 
    cause very strange errors that are difficult to find and fix.
 
+INSTALLING Linux kernel headers:
+
+   Extract a Linux kernel source tree and create a populated headers
+   directory:
+
+     make INSTALL_HDR_PATH=/tmp/linux-headers headers_install
 
 CONFIGURING uClibc-ng:
 
  - Users must have a valid configuration file to compile uClibc-ng.  Do not
-    skip this step.  New configuration options are added in each
-    release, and odd configuration options are sometimes removed.
-    To configure uClibc-ng, you can run:
+   skip this step.  New configuration options are added in each
+   release, and odd configuration options are sometimes removed.
+   To configure uClibc-ng, you can run:
+
+           make menuconfig
+   or
+           make config
 
-            make menuconfig
-    or
-            make config
+   You need to point in "Target Architecture Features and Options"
+   the field "Linux kernel header location" to for example
+   /tmp/linux-headers/include if you installed the headers to
+   /tmp/linux-headers (Variable name KERNEL_HEADERS in .config).
 
-    If you have an existing .config file, you can update this file
-    using the
+   If you have an existing .config file, you can update this file
+   using the
 
-            make oldconfig
+           make oldconfig
 
-    command, which will only ask you about new configuration options.
+   command, which will only ask you about new configuration options.
 
-    Available configuration commands are:
+   Available configuration commands are:
         "make config"       Text based configuration, no menus or colors.
         "make menuconfig"   Text based color menus, radiolists & dialogs.
         "make oldconfig"    Default all questions based on the contents of
@@ -41,8 +52,8 @@ CONFIGURING uClibc-ng:
 COMPILING uClibc-ng:
 
  - uClibc-ng does not have proper dependancy checking so if you
-    change your uClibc-ng configuration, you must current rebuild the
-    entire library, by first running 
+   change your uClibc-ng configuration, you must current rebuild the
+   entire library, by first running 
 
             make clean
 
@@ -50,8 +61,8 @@ COMPILING uClibc-ng:
 
             make
 
-    to compile uClibc-ng.  or if you are cross compiling, you would
-    instead run something like:
+   to compile uClibc-ng.  or if you are cross compiling, you would
+   instead run something like:
 
             make CROSS_COMPILE=arm-linux-
 
@@ -62,20 +73,19 @@ INSTALLING the uClibc-ng development environment:
 
         make PREFIX=<some path> install
 
-    This will install the uClibc-ng runtime and development system (i.e.
-    all the header files, libraries, etc) into the directories defined
-    within your .config file.
+   This will install the uClibc-ng runtime and development system (i.e.
+   all the header files, libraries, etc) into the directories defined
+   within your .config file.
 
 
 USING uClibc-ng:
 
  - To compile programs with uClibc-ng you will need a complete toolchain
-    (i.e. binutils, gcc and uClibc-ng) that was built expressly for use
-    with uClibc-ng.
+   (i.e. binutils, gcc and uClibc-ng) that was built expressly for use
+   with uClibc-ng.
 
  - You have following choices at the moment:
-   - Use OpenADK from http://www.openadk.org
+   - Use OpenADK from https://openadk.org
    - Use Buildroot from http://www.buildroot.org
-   - Use OpenWrt from http://www.openwrt.org
    - Use Crosstool-NG from http://crosstool-ng.org
    - Use your own build scripts or environment