Xinlinx交叉编译半途记事

  • 2020 年 2 月 11 日
  • 筆記

说明

板:SIN-IMX6UL

文档:内容来自于SIN-IMX6UL用户手册

构建虚拟机

安装虚拟机VMware。

安装CentOS-7-x86_64,选中桌面版安装:便于使用。

附注:

有些情况下,虚拟机安装完毕,使用一段时间root密码失效,这时无法登陆,可以使用如下步骤清除密码:

开机按e进入编辑模式,在linux16一栏后面输入:rd.break ,然后ctrl+x执行。

进入到特殊的模式以后,分别输入以下:即可。其中touch /.autorelabel,是为了重置SELinux的安全上下文属性。

mount -o remount,rw /sysroot  chroot /sysroot  vi /etc/shadow  删除root下第二个冒号中间的加密密码  vi /etc/passwd  删除root下的第二个冒号的x  touch /.autorelabel  exit  reboot

构建交叉编译

虚拟机初始化一些镜像和源:

yum install epel-release  rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm  rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  yum install yum-axelget  #并行下载  yum update

构建环境:

tar -xvf gcc-linaro-arm-linux-gnueabihf.tar.xz-C /opt  #解压并加入环境变量  gedit /etc/bashrc   #添加文件内容如下  export PATH=/opt/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin:$PATH  source /etc/bashrc    yum install glibc.i686 xulrunner.i686 libXtst.i686 texinfo fakeroot #安装依赖库  rpm -ivh mtd-utils-1.5.0-2.el6.nux.x86_64.rpm

编译内核、文件系统等

超级终端登陆目标机

基本是固定115200的输出。输入账户、密码即可。

常用命令:

uname -a #显示内核等全部信息

软件编译

常用编译命令:

cd xxxx  mkdir __install  ./configure CC=arm-linux-gnueabihf-gcc       --prefix=$(pwd)/__install       --host=arm-linux-gnueabihf       CFLAGS=-I/usr/local/include       LDFLAGS=-L/usr/local/lib  make  make install

每次编译完将__install中的文件放置到/usr/local下。

下载源码,解压时候需要在Linux下解压(Windows会不区分大小写,可能解压覆盖)

附注为openvpn的交叉编译事项:https://www.iteye.com/blog/openwrt-2306621

交叉编译完成以后,将文件移到目标板,注意一些文件夹的依赖问题:

如在ntpdate下时间同步的问题,需要有时区选择,

这时候需要重新挂载根目录为可读写,然后在虚拟机中安装ntpdate后,找打/usr/share/zoneinfo/Asia/下的对应文件如Shanghai,复制到(建立目录)目标机的/etc/localtime下,

或执行ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

然后:执行:即可更新时间

ntpdate ntp.api.bz