ti DM816X SDK 安装的折腾

记:


安装TI DM816X的编译环境,折腾了一天多!!!坑自己啊!!!


1、下载了ubuntu:ubuntu11.10 
2、下载交叉编译器:arm-2009q1-203-arm-none-linux-gnueabi.bin
3、下载TI编译SDK:ezsdk_dm816x-evm_5_05_02_00_setuplinux




遇到了各种问题,其中最大的问题就是使用ubuntu使用最新的源安装samba和vim以及openssh-server后,配置smb后,重启ubuntu,登陆后,


无法进入桌面,我了个去!!!!查看.xsession-errors ,提示如下:Running X session wrapper
Loading profile from /etc/profile
Loading profile from /home/liqinghan/.profile
Loading resource: /etc/X11/Xresources/x11-common
Loading X session script /etc/X11/Xsession.d/00upstart
Loading X session script /etc/X11/Xsession.d/20x11-common_process-args
Loading X session script /etc/X11/Xsession.d/30x11-common_xresources
Loading X session script /etc/X11/Xsession.d/40x11-common_xsessionrc
Loading X session script /etc/X11/Xsession.d/50_check_unity_support
Loading X session script /etc/X11/Xsession.d/50x11-common_determine-startup
Loading X session script /etc/X11/Xsession.d/52libcanberra-gtk3-module_add-to-gtk-modules
Loading X session script /etc/X11/Xsession.d/52libcanberra-gtk-module_add-to-gtk-modules
Loading X session script /etc/X11/Xsession.d/55gnome-session_gnomerc
Loading X session script /etc/X11/Xsession.d/60x11-common_localhost
Loading X session script /etc/X11/Xsession.d/60x11-common_xdg_path
Loading X session script /etc/X11/Xsession.d/60xdg-user-dirs-update
Loading X session script /etc/X11/Xsession.d/65compiz_profile-on-session
Loading X session script /etc/X11/Xsession.d/70gconfd_path-on-session
Loading X session script /etc/X11/Xsession.d/75dbus_dbus-launch
Loading X session script /etc/X11/Xsession.d/80appmenu
Loading X session script /etc/X11/Xsession.d/80appmenu-gtk3
Loading X session script /etc/X11/Xsession.d/80im-switch
Setting IM through im-switch for locale=en_US.
Start IM through /etc/X11/xinit/xinput.d/all_ALL linked to /etc/X11/xinit/xinput.d/default.
Loading X session script /etc/X11/Xsession.d/90consolekit
Loading X session script /etc/X11/Xsession.d/90qt-a11y
Loading X session script /etc/X11/Xsession.d/90x11-common_ssh-agent
Loading X session script /etc/X11/Xsession.d/99upstart
Loading X session script /etc/X11/Xsession.d/99x11-common_start
upstart: Unable to register as subreaper: Invalid argument


在百度各种查找,都没人出现过这种问题,也按照有些方法的设置仍然没有效果!后面只好,利用谷歌搜索,找到了一丝线索,(顺便在


这里骂一下天朝的制度,屏个毛闭啊!)
google出来的如下:


https://bugs.launchpad.net/ubuntu/+source/linux-maguro/+bug/1218415 
Bug Description:


Upstart now manages the Touch session via an Upstart Session Init. To allow that sub-init running as a non-priv user to 


receive all SIGCHLD's for processes it starts, it attempts to use PR_SET_CHILD_SUBREAPER. However, that prctl was added in 


kernel 3.4 and the kernel on my Nexus 7 is 3.1.10-6-grouper so does not have subreaper support:


$ sudo grep subreaper /var/log/upstart/ubuntu-touch-session-phablet.log
init: Unable to register as subreaper: Invalid argument


As such, please cherry-pick the following to all Touch kernels older than 3.4 (maguro and grouper):


再看第二个:


https://bugs.launchpad.net/upstart/+bug/1161329


Bug Description


I'm running upstart 1.8 with --session --user options. Using a script that looks like this:


#!/bin/sh
if [ -z "${UPSTART_HOME}" ]; then
    UPSTART_HOME=/opt/upstart
    export UPSTART_HOME
fi


PATH=$HOME/test/bin:${UPSTART_HOME}/sbin:$PATH
XDG_CONFIG_HOME=$HOME/test
export XDG_CONFIG_HOME
XDG_CONFIG_DIRS=
export XDG_CONFIG_DIRS
XDG_CACHE_HOME=$HOME/test/log
export XDG_CACHE_HOME
exec ${UPSTART_HOME}/sbin/init --session --user \
     --inherit-env \
     --startup-event=diaas-start


It finds the config files I want it to find, then says:


init: Unable to register as subreaper: Invalid argument
event_new: Pending child-subreaper-failed event


Then lots more stuff about starting my services, then


Handling child-subreaper-failed event
event_finished: Finished child-subreaper-failed event
init:com.ubuntu.Upstart.c:2651: Assertion failed in control_emit_event_emitted: env != NULL
Aborted (core dumped)


Upstart 1.5 doesn't fail this way, but I need --inherit-env, for what I'm trying to do.


I get exactly the same result with a 3.2 kernel, as with the kernel I'm now running which is 3.4.37 from Quantal.


Libc from Quantal doesn't help either.


apply:


So you apparently ran into two problems:
 - You're running a kernel < 3.5 so you're missing the subreaper support in the kernel. That's not a big problem as upstart 


handles that gracefully but you won't be able to track processes for jobs doing double-fork.
 - You are apparently using an old version of libnih. You really should backport the one we currently have in Ubuntu as it 


includes dbus fixes which solve the crash you're getting. Note that dropping --session won't make you immune from that 


specific crash, so you really should get a newer libnih on the system and rebuild upstart with it.




看了这上面两个bug,渐渐感觉到自己使用最新的源安装samba的时候更新了各种lib,突然觉得好像是使用的源的版本高于ubuntu 11.10,所


以出现了登录的bug!
PS: 因为第一次安装ubuntu的时候用的源也是最新的,导致出错,(登陆后,无法进入桌面)
然后第二也一样,用的源也是最新的,也出错(登陆后,无法进入桌面)
期间都用了devel这个源。


于是把这两次的ubuntu删除了,重新安装,但是换源的时候使用的源旧一点,而且每个程序安装完后都重启一下,于是就不会出现这个种问


题了,最后面顺利安装各种软件!


首先
 ./arm-2009q1-203-arm-none-linux-gnueabi.bin,
遇到的问题:
The installer has detected that your system uses the dash shell
as /bin/sh.  This shell is not supported by the installer.
You can work around this problem by changing /bin/sh to be a
symbolic link to a supported shell such as bash.
For example, on Ubuntu systems, execute this shell command:
   % sudo dpkg-reconfigure -plow dash
   Install as /bin/sh? No
Please refer to the Getting Started guide for more information,
or contact CodeSourcery Support for assistance.




于是按照提示:
#sudo dpkg-reconfigure -plow dash


然后在弹出的的菜单中选择 No


即可!!




一定是arm-none-linux-gnueabi.bin,之前因为使用百度下载不到arm-2009q1-203-arm-none-linux-gnueabi.bin于是乎就下载的arm-


2009q1-161-arm-none-eabi.bin。在安装ezsdk_dm816x-evm_5_05_02_00_setuplinux这个就有问题,提示无法找到arm-none-linux-gnueabi-


东东,于是乎,就用谷歌搜索arm-2009q1-203-arm-none-linux-gnueabi.bin果不其然,第一个链接就有这个下载地址!想想还是谷歌强大哈





安装arm-2009q1-203-arm-none-linux-gnueabi.bin完以后,配置root和其他用户的 .bashrc文件添加:
export PATH=$PATH:/opt/arm-2009q1-203/bin
即可,然后source .bashrc 既可!


安装ezsdk_dm816x-evm_5_05_02_00_setuplinux
这个要指定/opt/arm-2009q1-203/bin这个位置,我这里安装的arm-2009q1-203-arm-none-linux-gnueabi.bin地址是在/opt/arm-2009q1-203



而安装的ezsdk_dm816x-evm_5_05_02_00_setuplinux目录为/opt/ezsdk-dm861x-evm


经过以上的折腾终于把这个东东弄好了!


PS:经过多次验证,事实证明:ubuntu11.10实在太不稳定了,老是进不了桌面,赶紧换成了10.04 LTS版本,杠杠的!稳定速度快!




你可能感兴趣的:(armlinux)