главная->Тион-Про-270->Сборка КФС 
    

Сборка КФС (она же rootfs, она же - корневая файловая система).


Когда мы скачивали ptxdist, мы скачивали также директорию с проектами. Там была одна маленькая проблема: проекты были немного другой версии (я писал еще "обращаю внимание, что проекты под версию 1.0.0 !!!") проекты - это как раз "заготовки" для КФС, т.е. в них нет ни исходников ни результирующих файлов, но есть информация, необходимая для скачивания нужных исходников и сборки всей КФС. Делаем вот что:
timur-tion@timur-ibm:~/Proj$ ptxdist setup

появляется псевдографическое меню, в котором выбираем ProjectSearchPath
 PTXdist v1.0.2 Configuration
 ──────────────────────────────────────────────────────────────────────────────
  ┌─── Powered by PTXdist - http://www.pengutronix.de/software/ptxdist/ ────┐
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │  
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │  
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │  
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >       │  
  │ ┌─────────────────────────────────────────────────────────────────────┐ │  
  │ │            --- PTXDIST Setup Menu                                   │ │  
  │ │                Proxies             --->                             │ │  
  │ │                Project Searchpath  --->                             │ │  
  │ │                Source Directory    --->                             │ │  
  │ │                Mirrors             --->                             │ │  
  │ │                IPKG Repository     --->                             │ │  
  │ │                Java SDK            --->                             │ │  
  │ │            ---                                                      │ │  
  │ │                Load an Alternate Configuration File                 │ │  
  │ │                Save Configuration to an Alternate File              │ │  
  │ └─────────────────────────────────────────────────────────────────────┘ │  
  ├─────────────────────────────────────────────────────────────────────────┤  
  │                    <Select>    < Exit >    < Help >                     │  
  └─────────────────────────────────────────────────────────────────────────┘  

видим там уже написано что-то типа {ptxdist top dir}/projects,выходим из setup-a с сохранением параметров.
Если в ответ на ptxdist setup компьютер ругнулся, значит вы не изменили переменную окружения PATH, для моей машины её надо модифицировать так export PATH=$PATH:/home/timur-tion/Proj/ptxdist/bin:
вводим:
timur-tion@timur-ibm:~/Proj$ ptxdist projects

получаем:
ptxdist: searching for projects:
ptxdist: scanning /home/timur-tion/Proj/ptxdist/lib/ptxdist-1.0.2/projects...

---------------------- Available PTXdist Projects: ----------------------------
OSELAS.BSP-Pengutronix-GenericPowerpcGlibc-3
OSELAS.BSP-Pengutronix-GenericArmGlibc-3
OSELAS.BSP-Pengutronix-GenericI586Glibc-3
-------------------------------------------------------------------------------

далее клонируем один из существующих проектов:
timur-tion@timur-ibm:~/Proj$ ptxdist clone OSELAS.BSP-Pengutronix-GenericArmGlibc-3 TionPro270_RootFS
ptxdist: scanning /home/timur-tion/Proj/ptxdist/lib/ptxdist-1.0.2/projects...
./
./patches/
./ptxconfig
./projectroot/
./projectroot/etc/
./projectroot/etc/network/
./projectroot/etc/network/interfaces
./rules/
./kernelconfig.native
ptxdist: done.

видим результат клонирования:
timur-tion@timur-ibm:~/Proj$ ls
hello  linux  OSELAS-toolchain1.1.1  ptxdist  TionPro270_RootFS  u-boot1.3.3

(появилась директория TionPro270_RootFS)
заходим в неё, смотрим список файлов, запускаем menuconfig:
timur-tion@timur-ibm:~/Proj$ cd TionPro270_RootFS/
timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ ls
kernelconfig.native  patches  projectroot  ptxconfig  rules
timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ ptxdist menuconfig
ptxdist: menuconfig...

появляется менюшка опять псевдографическая, где мы можем указать, какие компоненты ставить, а какие нет.
──────────────────────────────────────────────────────────────────────────────
  ┌─── Powered by PTXdist - http://www.pengutronix.de/software/ptxdist/ ────┐
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │  
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │  
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │  
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >       │  
  │ ┌─────────────────────────────────────────────────────────────────────┐ │  
  │ │            --- ------------------------------------                 │ │  
  │ │                Project Name & Version          --->                 │ │  
  │ │            --- ------------------------------------                 │ │  
  │ │                PTXdist Config, Architecture    --->                 │ │  
  │ │                Cross Compilation Tools         --->                 │ │  
  │ │                Host Side Tools                 --->                 │ │  
  │ │                Debugging Tools                 --->                 │ │  
  │ │            --- ------------------------------------                 │ │  
  │ │                Image Creation Options          --->                 │ │  
  │ │                Root Filesystem                 --->                 │ │  
  │ └────────────v(+)─────────────────────────────────────────────────────┘ │
  ├─────────────────────────────────────────────────────────────────────────┤  
  │                    <Select>    < Exit >    < Help >                     │  
  └─────────────────────────────────────────────────────────────────────────┘  

-заходим в Image Creation Options, ставим * напротив Generate images/root.jffs2
-в пункте Erase Block Size (NEW) вводим число 262144
-заходим в Ptxdist Config, Architecture видим:
 PTXdist v1.0.2 Configuration
 ──────────────────────────────────────────────────────────────────────────────
  ┌──────────────────── PTXdist Config, Architecture   ─────────────────────┐
  │  Arrow keys navigate the menu.  <Enter> selects submenus --->.          │  
  │  Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, │  
  │  <M> modularizes features.  Press <Esc><Esc> to exit, <?> for Help, </> │  
  │  for Search.  Legend: [*] built-in  [ ] excluded  <M> module  < >       │  
  │ ┌──────^(-)───────────────────────────────────────────────────────────┐ │  
  │ │      ()  Extra CFLAGS (c)                                           │ │  
  │ │      ()  Extra CXXFLAGS (c++)                                       │ │  
  │ │      ()  Extra LDFLAGS (ld)                                         │ │  
  │ │      --- Paths & Directories                                        │ │  
  │ │      (${PTXDIST_WORKSPACE}/local) Prefix for "install" stage        │ │  
  │ │      --- GNU Toolchain Identification String                        │ │  
  │ │      (OSELAS.Toolchain-1.1.0) Check for specific toolchain vendor   │ │  
  │ │      (4.1.2) Check for specific gcc version                         │ │  
  │ │      (arm-v4t-linux-gnueabi) GNU Target                             │ │  
  │ │      (${PTXCONF_GNU_TARGET}-) Compiler Prefix                       │ │  
  │ └─────────────────────────────────────────────────────────────────────┘ │  
  ├─────────────────────────────────────────────────────────────────────────┤  
  │                    <Select>    < Exit >    < Help >                     │  
  └─────────────────────────────────────────────────────────────────────────┘  

заменяем OSELAS.Toolchain-1.1.0 на ничего
заменяем arm-v4t-linux-gnueabi на arm-xscale-linux-gnu
заменяем 4.1.2 на 4.0.4

выходим из конфига с сохранением параметров.
timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ ptxdist toolchain /opt/OSELAS.Too
lchain-1.1.1/arm-xscale-linux-gnu/gcc-4.0.4-glibc-2.3.6-kernel-2.6.17/bin/

timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ ptxdist go

начнется процесс (в норме очень долгий и чреватый ошибками)
начал в 18.05, ошибка вылезла в 18.11:
--18:10:24--  http://www.tcpdump.org/release/libpcap-0.9.5.tar.gz
           => `/home/timur-tion/Proj/TionPro270_RootFS/src/libpcap-0.9.5.tar.gz'
Resolving www.tcpdump.org... 209.87.252.214
Connecting to www.tcpdump.org|209.87.252.214|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
18:10:25 ERROR 404: Not Found.


Could not get packet via http!
URL: http://www.tcpdump.org/release/libpcap-0.9.5.tar.gz

make: *** [/home/timur-tion/Proj/TionPro270_RootFS/src/libpcap-0.9.5.tar.gz] Error 255

error: a command in the pipe returned 2, bailing out

скачиваем с ftp://64.50.238.52/.1/gentoo/distfiles/libpcap-0.9.5.tar.gz в /home/timur-tion/Proj/TionPro270_RootFS/src и снова запускаем ptxdist go

запустили в 18.14, в 18.29 закончилась сборка
install_finish: creating package directory ... ~/Proj/TionPro270_RootFS/images/ut
elnetd/ipkg ~/Proj/TionPro270_RootFS
~/Proj/TionPro270_RootFS
install_finish: packaging ipkg packet ... 
Packaged contents of /home/timur-tion/Proj/TionPro270_RootFS/images/utelnetd/ipkg
 into /home/timur-tion/Proj/TionPro270_RootFS/images/utelnetd_0.1.9_arm.ipk
done.
Finished target utelnetd.targetinstall
Install 'dot' from graphviz packet if you want to have a nice dependency tree
Finished target dep_tree
timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ 

timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ ptxdist images

timur-tion@timur-ibm:~/Proj/TionPro270_RootFS$ ls images/
bing_1.0.5_arm.ipk       gdbserver_6.6_arm.ipk     ncurses_5.6_arm.ipk   root.jffs2                zlib_1.2.3-ptx4_arm.ipk
busybox_1.4.2_arm.ipk    glibc_1.0_arm.ipk         netcat_0.7.1_arm.ipk  sysfsutils_2.0.0_arm.ipk
coreutils_5.2.1_arm.ipk  hotplug_20040329_arm.ipk  permissions           udev_106_arm.ipk
figlet_222_arm.ipk       ipkg.conf                 rootfs_1.0.0_arm.ipk  utelnetd_0.1.9_arm.ipk

теперь у нас есть собранное ядро и собранная КФС. Если мы захотим что-нибудь в КФС добавить то просто заходим в menuconfig, добавляем и дальше как написано - go, images... а если захотим что-то убрать, то придется делать ptxdist clean, а затем снова компилить пол-часа.

Используются технологии uCoz