ubuntu12.04 MX28调试记录
對于ubuntu12.04的用戶可能會報如下錯誤:
funbox@funbox-System:/opt/freescale/ltib$ ./ltib ltib cannot be run because one or more of the host packages needed to run it are either missing or out of date or not in ltib's standard path. Please install/upgrade these packages on your host. If you have your own utilities in non-standard paths, please add an entry into the .ltibrc file for example:%path_std /usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/my/own/exesPackage Minimum ver Installed info ------- ----------- --------------- zlib 0 not installedDied at ./ltib line 1409. traceback:main::host_checks:1409main:554Started: Thu Nov 19 10:11:02 2015 Ended: Thu Nov 19 10:11:03 2015 Elapsed: 1 seconds 需要執行如下patch-ltib-ubuntu12.04.sh:#!/usr/bin/env bash# get the patch tarball and untar it wget -O ubuntu-ltib-patch.tgz https://community.freescale.com/servlet/JiveServlet/downloadBody/93454-102-3-2834/ubuntu-ltib-patch.tgz tar -xzvf ubuntu-ltib-patch.tgz# execute the script which do the patching ltibDir=`pwd` cd ubuntu-ltib-patch ./install-patches.sh $ltibDir
1.拷貝L2.6.35_1.1.0_130130_source.tar.gz到/opt/freescale
2.#?/opt/freescale
? ?#?tar xvf L2.6.35_1.1.0_130130_source.tar.gz
? ?#?./L2.6.35_1.1.0_130130_source/install
? ?# cd?ltib
? ?#?./ltib
執行./ltib時出現如下錯誤:
funbox@funbox-System:/opt/freescale/ltib$ ./ltib I ran the command: sudo -S -l which returned:[sudo] password for funbox: Sorry, try again. [sudo] password for funbox: Sorry, try again. [sudo] password for funbox: Sorry, try again. sudo: 3 incorrect password attemptsThis means you don't have sudo permission to execute rpm commands as root without a password. This is needed for this build script to operate correctly.To configure this, as root using the command "/usr/sbin/visudo", and add the following line in the User privilege section:funbox ALL = NOPASSWD: /usr/bin/rpm, /opt/freescale/ltib/usr/bin/rpmtraceback:main::check_sudo_setup:2467main::host_checks:1413main:554Started: Thu Nov 19 09:15:14 2015 Ended: Thu Nov 19 09:15:20 2015 Elapsed: 6 secondsBuild Failed3.解決上述錯誤
? #?sudo vi /etc/sudoers
在最后一行加入,然后保存
funbox ALL=NOPASSWD: /usr/bin/rpm,/opt/freescale/ltib/usr/bin/rpm
注意:funbox是用戶名
4.錯誤解決
? 1) compr_lzo.c:31:23: fatal error: lzo/lzo1x.h: No such file or directory
? ? ?#?sudo apt-get install liblzo2-dev
? ? ?#?rm /opt/freescale/ltib/usr/src/rpm/BUILD/mtd-utils/ -rf
? 2)?uuid/uuid.h: No such file or directory
# sudo?apt-get?install?uuid-dev
#?rm /opt/freescale/ltib/usr/src/rpm/BUILD/mtd-utils/ -rf
5.此時可以運行./ltib腳本不過此時還遇到了一個問題在編譯lxdialog時遇到編譯錯誤明顯是ncurses的問題該問題的主要原因是-lncurses選型沒有生效,修改如下:
將lkc-1.4-lxdialog.patch里面的3112行的
mconf_LIBS=?-lncurses
mconf:?$(mconf_OBJ)?$(lxdialog_LIB)
?????????????$(CC)?$(LDFLAGS)?$(mconf_LIBS)?$^?-o?S@?
修改為
mconf_LIBS=?
mconf:?$(mconf_OBJ)?$(lxdialog_LIB)
?????????????$(CC)?$(LDFLAGS)?$(mconf_LIBS)?$^?-o?S@?-lncurses
6./opt/freescale/ltib/dist/lfs-5.1/mux_server/mux_server.spec的25行
%{__cc} %{optflags} -lpthread mux_server.c -o mux_server -lpthread
修改為
mux_server.c -o mux_server -lpthread
7.出現Can't touch .host_wait_warning31
# chmod 777 /opt/freescale
# chmod 777 /opt/freescale/ltib
8.解壓u-boot,解壓出來的文件存放到/opt/freescale/ltib/rpm/BUILD/u-boot-2009.08
#?./ltib -m prep -p u-boot
9.單獨編譯u-boot
#?make CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi- mx28_evk_config
#?make CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.4.4-glibc-2.11.1-multilib-1.0/arm-fsl-linux-gnueabi/bin/arm-none-linux-gnueabi-?
10.編譯kernel
#?./ltib -m scbuild -p kernel
11.imx-bootlets控制GPIO實現點亮LED
# vi?boot_prep/init-mx28.c,在int _start(int arg)函數加入
HW_PINCTRL_MUXSEL3_SET(3 << 2); //PINID_LCD_D17HW_PINCTRL_DOE1_SET(1 << 17);HW_PINCTRL_DOUT1_SET(1 << 17);HW_PINCTRL_MUXSEL3_SET(3 << 4); //PINID_LCD_D18HW_PINCTRL_DOE1_SET(1 << 18);HW_PINCTRL_DOUT1_SET(1 << 18);
12.生成updater_ivt
MFGTool 燒寫 Nand flash 的原理是:使用 USB 將 updater 系統送入 DDR 中啟動運行,并通過 USB 發送 ucl.xml 文件中的命令以及 ucl.xml 文件中所指定的 uboot、內核、文件系統等文件到開發板,從而實現將 uboot、內核、文件系統燒寫到 Nand Flash 上。而此 updater 系統也是一個精簡版的 linux 系統,也需要支持新的 Nand Flash,因此需要重新制作一遍 updater 系統。
關于制作 updater 系統的方法如下:
1.在內核目錄下執行 make imx28evk_updater_defconfig;
2.然后執行 make,在 arch/arm/boot 目錄下生成 zImage;
3.將 zImage 拷貝到 bootloader/imx-bootlet 工具目錄下,執行 build_updater 腳本,即可生
成 updater_ivt.sb 文件,即為 updater 系統。
另外,uboot 也需要執行 Nand Flash 拷貝操作,因此,也需修改其驅動,而 uboot 中的
Nand Flash 驅動與 linux 的完全一樣。
# vi?/opt/freescale/ltib/rpm/BUILD/imx-bootlets-src-2.6.35.3-1.1.0/linux_prep/board/iMX28_EVK.c
#char cmdline_def[] = "gpmi=g console=ttyAM0,115200 root=ubi0:rootfs rootfstype=ubifs ?fec_mac= ethact";
總結
以上是生活随笔為你收集整理的ubuntu12.04 MX28调试记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win8自带IE10访问QQ空间及Fla
- 下一篇: Ubuntu 16.04安装Atom(加