1.arm的linux系统搭建

时间:2021-12-27 07:52:06

从裸板到系统

  一般是CPU内部有启动代码,如nuvoton的nuc900系列的芯片内部就有ibr程序,来控制启动过程,在usb启动时负责加载usb驱动,这样在pc端就可以识别到usb设备了,然后通过turbowriter工具(运行时会传输xusb.bin到cpu),可以下载u-boot程序到flash中去了;然后再根据u-boot引导linux内核,烧写文件系统。这是大概的方法。后面会在下面添加以某个平台为主的详细搭建过程。

二、编译u-boot遇到的问题

  1、version 'GLIBCXX_3.4.9' not found

  原因:使用的宿主机版本和交叉编译器版本太老;

  解决方法:

  (1)下载RPM包:

  http://kojipkgs.fedoraproject.org/packages/gcc/4.3.2/7/i386/libstdc++-4.3.2-7.i386.rpm

  拷贝到虚拟机下

  (2)提取包并将生成的libstdc++库文件考到到/usr/lib

  #rpm2cpio libstdc++-4.3.2-7.i386.rpm | cpio -idv

  则在当前目录下生成./usr/lib目录,包含:libstdc++.so.6.0.10、软连接和 libstdc++.so.6

  将生成的libstdc++.so.6.0.10 、软连接和 libstdc++.so.6拷贝到/usr/lib下:

  #cp libstdc++* /usr/lib -a

  查看:

  ls -l libstdc++.so.6

  显示:

  /usr/lib/libstdc++.so.6 -> /usr/lib/libstdc++.so.6.0.10

  (3)执行strings /usr/lib/libstdc++.so.6 | grep GLIBC

  返回结果包含:GLIBCXX_3.4.9

  GLIBCXX_3.4

  GLIBCXX_3.4.1

  GLIBCXX_3.4.2

  GLIBCXX_3.4.3

  GLIBCXX_3.4.4

  GLIBCXX_3.4.5

  GLIBCXX_3.4.6

  GLIBCXX_3.4.7

  GLIBCXX_3.4.8

  GLIBCXX_3.4.9

  GLIBCXX_3.4.10

  GLIBC_2.0

  GLIBC_2.3

  GLIBC_2.4

  GLIBC_2.3.4

  GLIBC_2.1

  GLIBC_2.1.3

  GLIBC_2.2

  GLIBCXX_FORCE_NEW

  GLIBCXX_DEBUG_MESSAGE_LENGTH